Java Если нажимаем на пустую клетку, все пустые вокруг открываются до непустых. Кажется происходит зацикливание, пока не могу понять почему
//Внутри проверки клетки по нажатию, условие - клетка пустая (ее значение 0)
//arrayOfActions - очередь ArrayDeque из координат
arrayOfActions.addLast(i);
arrayOfActions.addLast(j);
while (arrayOfActions.size() != 0){
checkFields(arrayOfActions.poll(),arrayOfActions.poll());//Проверка клеток смежных
}
...... //Закончилась функция проверки нажатия кнопок
boolean checkFields(int i, int j)
{
states[i][j] = State.OPENED; //Состояние: открытая клетка
if(j != 0) {
if (field[i][j - 1] == CellValue.NUMBER) { //Число, не бомба
if (fieldValues[i][j - 1] != 0) { //Если не пустая(нулевая)
states[i][j - 1] = State.OPENED;
} else {
arrayOfActions.addLast(i);
arrayOfActions.addLast(j - 1);
}
}
}
if(j != n-1) {
if (field[i][j + 1] == CellValue.NUMBER) {
if (fieldValues[i][j + 1] != 0) {
states[i][j + 1] = State.OPENED;
} else {
arrayOfActions.addLast(i);
arrayOfActions.addLast(j + 1);
}
}
}
if(i != 0) {
if (field[i - 1][j] == CellValue.NUMBER) {
if (fieldValues[i - 1][j] != 0) {
states[i - 1][j] = State.OPENED;
} else {
arrayOfActions.addLast(i - 1);
arrayOfActions.addLast(j);
}
}
}
if(i != n-1) {
if (field[i + 1][j] == CellValue.NUMBER) {
if (fieldValues[i + 1][j] != 0) {
states[i + 1][j] = State.OPENED;
} else {
arrayOfActions.addLast(i + 1);
arrayOfActions.addLast(j);
}
}
}
return true;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Есть класс @Entity ResultCode, далее есть интерфейс который extends CrudRepository, в классе контроллера я могу пользоваться resultCodeRepository интерфейсом, но в других...
Есть ли в Java точные типы? Потому что как мы знаем в float/double происходит потеря точности и деньги в таких типах хранить не стоит