Итак, у меня есть сплошная функция слайдов, проблема в том (что очень трудно объяснить!), Она проходит через все возможности, включая пробелы в массиве 2d, которые уже были добавлены вместе: скажем, есть такая установка: 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" (из предыдущего примера).