Это ваша функция recursiveCheck с удаленным оператором печати
private boolean recursiveCheck(int count, int x, int y, int incX, int incY) {
while (count > 1) {
if ((x + incX < BOARD_WIDTH && y + incY < BOARD_HEIGHT && board[x][y] != 0
&& board[x][y] == board[x + incX][y + incY]) {
recursiveCheck(count - 1, x + incX, y + incY, incX, incY);
}
return false;
}
return true;
}
Мне кажется, что эта функция recursiveCheck всегда будет возвращать false первым, если вы передадите число, большее или равное 2. Вы вызов
recursiveCheck(count - 1, x + incX, y + incY, incX, incY);
внутри вашего оператора if, но вы ничего не делаете с результатом, полученным при вызове функции. Следовательно, оператор if в конечном итоге станет ложным. Таким образом, вместо этого вы должны
return recursiveCheck(count - 1, x + incX, y + incY, incX, incY);
вместо простого вызова функции в то время как l oop