所以我有一个可靠的幻灯片功能,问题是(这很难解释!)它经历了所有可能性,包括已经添加在一起的二维数组中的空格:假设有这样的设置:4,4 ,8,2 ---向右滑动一次后,结果如下:,_ ,16,2。但是在实际游戏中,向右滑动一次后,它应该是这样的:___,8,2。
基本上,我该如何解决这个问题?你不需要告诉我代码,这是我的期末项目,但我想得到一些关于为什么会发生这种情况的解释。
我试图从右到左循环遍历数组,但这导致数字甚至没有移动。
processUserChoice(String i) {
if (i.equals("d")) {
while ((slideRight())) {
moveRight();
}
}
printBoard();
}
public boolean slideRight() {
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[i].length - 1; j++) {
if (board[i][j + 1] == 0 && board[i][j] != 0) {
return true;
} else if (board[i][j + 1] == board[i][j] && board[i][j] != 0) {
return true;
}
}
}
return false;
}
public void moveRight() {
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[i].length - 1; j++) {
if (board[i][j + 1] == 0 && board[i][j] != 0) {
board[i][j + 1] = board[i][j];
board[i][j] = 0;
} else if (board[i][j + 1] == board[i][j] && board[i][j] != 0) {
board[i][j + 1] = board[i][j + 1] + board[i][j];
board[i][j] = 0;
}
}
}
//checkLose();
}
向右滑动一次后,它应该看起来像这样:“___,8,2”(来自之前的示例)。