五子棋的棋盘Android版

五子棋的棋盘Android版实现,具体上下文可以参考 上一篇的五子棋AI实现中的代码
import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;

//棋盘
public class Chessboard extends View implements IChessboard{

	//游戏状态常量:
    //已准备好,可开局
    private static final int READY = 1;
    //已开局
    private static final int RUNNING = 2;
    //已结束
    private static final int PLAYER_TWO_LOST = 3;
    private static final int PLAYER_ONE_LOST = 4;
    
    //当前状态,默认为可开局状态
    private int currentMode = READY;
    
	//画笔对象
	private final Paint paint = new Paint();
	
	//代表绿色
	private static final int GREEN = 0;
	private static final int NEW_GREEN = 1;
	
	//红色
	private static final int RED = 2;
	//黄色
	private static final int NEW_RED = 3;
	
	//点大小
    private static int pointSize = 20;
	
    //用于提示输赢的文本控件
	private TextView textView = null;
	
	//不同颜色的Bigmap数组
	private Bitmap[] pointArray = new Bitmap[4];
	
	//屏幕右下角的坐标值,即最大坐标值
    private static int maxX;
    private static int maxY;
    
    //第一点偏离左上角从像数,为了棋盘居中
	private static int yOffset;
	private static int xOffset;
	
	//两个玩家
	//第一个玩家默认为人类玩家
	private IPlayer player1 = new HumanPlayer();
	//第二个则根据选择人机战还是对战模式来初始化
	private IPlayer player2;
	//预先初始两个第二玩家
	//电脑玩家
	private static IPlayer computer = AiFactory.getInstance(2);
	//人类玩家
	private static final IPlayer human = new HumanPlayer();
	
	// 所有未下的空白点
	private final List<Point> allFreePoints = new ArrayList<Point>();
	
    public Chessboard(Context context, AttributeSet attrs) {
        super(context, attrs);
        setFocusable(true);
        
        //把三个颜色的点准备好,并放入数组
        Resources r = this.getContext().getResources();
        fillPointArray
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值