【发布时间】:2015-05-03 07:40:48
【问题描述】:
我正在创建一个棋盘游戏,它有两种不同颜色的棋子,黑色和红色。
如果玩家用自己的棋子水平或垂直包围对手的棋子,棋子就会被移走。这里有一些图片来证明这一点:
我的棋盘是一个简单的 2d 整数数组,其值为 0、1 或 2,具体取决于空间是否为空,有红色棋子还是黑色棋子。
这是我到目前为止提出的代码,但是我遇到了超出范围错误的问题,并且它也不能解释捕获多个片段。
static final int EMPTY = 0, BLACK = 1, RED = 2, ROW = 9, COLUMN = 9;
board = new int[ROW][COLUMN];
public void captureRedPieces() {
for(int i = 0; i < ROW; i++) {
for(int j = 0; j < COLUMN; j++) {
if(i <= ROW - 2) {
if(board[i][j] == 1 && board[i + 1][j] == 2 && board[i + 2][j] == 1) {
board[i + 1][j] = EMPTY;
}
}
if(i <= COLUMN - 2) {
if(board[i][j] == 1 && board[i][j + 1] == 2 && board[i][j + 2] == 1) {
board[i][j + 1] = EMPTY;
}
}
}
}
}
谁能帮我想出一个更好的解决方案来捕捉碎片?
【问题讨论】: