Ваш метод placeCounter
должен выглядеть примерно так:
private void placeCounter(char player, int position) {
boolean placed = false;
if (player == 'r') {
for (int i = board.length - 1; i >= 0; i--) {
if (!placed && board[i - 1][position] != 'r' && board[i - 1][position] != 'y') {
if (board[i][position] == 'y') {
board[i - 1][position] = 'r';
placed = true;
}
else if (board[i][position] != 'r') {
board[i][position] = 'r';
placed = true;
}
}
}
} else {
for (int i = board.length - 1; i >= 0; i--) {
if (!placed && board[i - 1][position] != 'y' && board[i - 1][position] != 'r') {
if (board[i][position] == 'r') {
board[i - 1][position] = 'y';
placed = true;
}
else if (board[i][position] != 'y') {
board[i][position] = 'y';
placed = true;
}
}
}
}
}
Когда вы пытаетесь разместить счетчик, вы должны проверить, занята ли ячейка r
или y
.Если вы заметили, что я добавил эти условия в if(!placed)
инструкцию:
&& board[i - 1][position] != 'y' && board[i - 1][position] != 'r'
Если вы не выполните этот контроль, вы всегда перестанете переопределять одну и ту же ячейку, и поэтому после четвертого раза ничего не добавляется.
Вы также должны проверить, является ли пользовательский ввод r
или y
, потому что, если я вставлю пробел или число в качестве ввода, программа выдаст исключение.
Этогрубое решение, вы могли бы прийти с чем-то лучшим, но это просто чтобы направить вас в правильном направлении.