}
}
setMode(PLAYER_ONE_LOST);
};
//是否正在下某一步棋过程中,主是电脑下棋时需要较长的计算时间,这期间一定不可以再响应触摸事件
private boolean onProcessing() { }
return whoRun == -1;
//默认第一个玩家先行 private int whoRun = 1; private void setPlayer1Run(){ whoRun = 1; }
private void setOnProcessing(){
whoRun = -1; }
//是否轮到人类玩家下子 private boolean isPlayer1Run(){ return whoRun==1; }
//是否轮到人类玩家下子
private boolean isPlayer2Run(){ }
private void setPlayer2Run(){ whoRun = 2; }
private void refressCanvas(){ //触发onDraw函数 }
private void drawPlayer1Point(Canvas canvas){ int size = player1.getMyPoints().size()-1; if(size<0){ return ;
}
return whoRun==2;
Chessboard.this.invalidate();
- 41 -
}
for (int i = 0; i < size; i++) { drawPoint(canvas, player1.getMyPoints().get(i), BLACK); }
//最后下的一个点标成黄色
drawPoint(canvas, player1.getMyPoints().get(size), NEW_BLACK);
private void drawPlayer2Point(Canvas canvas){
if(player2==null){
return ;
}
int size = player2.getMyPoints().size()-1; if(size<0){ return ;
}
for (int i = 0; i < size; i++) { drawPoint(canvas, player2.getMyPoints().get(i), WHITE); }
//最后下的一个点标成黄色
drawPoint(canvas, player2.getMyPoints().get(size), NEW_WHITE); }
//初始化好三种颜色的点
public void fillPointArrays(int color,Drawable drawable) {
Bitmap bitmap = Bitmap.createBitmap(pointSize, pointSize, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, pointSize, pointSize); drawable.draw(canvas); pointArray[color] = bitmap;
}
//doRun方法操作的是看不见的内存数据,此方法内容数据以图画的方式表现出来,所以画之前数据一定要先准备好
@Override
protected void onDraw(Canvas canvas) { drawChssboardLines(canvas); //画鼠标所在的点 }
drawPlayer1Point(canvas); //画电脑下的棋子 drawPlayer2Point(canvas);
- 42 -
}
public List
//初始化空白点集合 private void createPoints(){ allFreePoints.clear(); for (int i = 0; i < maxX; i++) { for (int j = 0; j < maxY; j++) { allFreePoints.add(new Point(i, j));
}
}
}
public int getMaxX() { return maxX; }
public int getMaxY() { return maxY; }
- 43 -
相关推荐: