Я создаю тральщик, как приложение, и у меня есть код, который предназначен для проверки вокруг неиспользуемого пространства, сколько мин вокруг него. Я создал что-то для этого эффектаПростой способ игнорировать исключения за пределами JAVA
int count = 0;
if(model.get(i-1, j-1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i, j-1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i-1, j) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i+1, j) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i, j+1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i-1, j+1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i+1, j-1) == MinerGridCo.UNTURNED_MINE){ count++;}
if(model.get(i+1, j+1) == MinerGridCo.UNTURNED_MINE){ count++;}
String mineNum = String.valueOf(count);
cell[i][j].setText(mineNum);
однако, это приводит к ошибкам, когда стремятся получить номер шахты по краям доски. Какие-нибудь полезные методы, чтобы избежать этого?
После попытки предложения ниже. Я все еще получаю ошибки за пределами границ. Кто-нибудь есть какие-либо советы, вот репо, если кто-то хочет, чтобы собрать его сами https://github.com/phillolivercomp/MineSweeper.git
Какой тип данных «модель»? – Zyerah
Игнорирование исключений - это всегда плохая идея. Вместо этого напишите свой код, чтобы обрабатывать граничные (в данном случае) условия. Например, напишите метод с подписями «Список getNeighbors (Cell cell)», который, учитывая ячейку, возвращает список действительных соседей для проверки. Затем исследуйте только тех соседей. –
Ну, модель является образцовым элементом графического интерфейса, и это всего лишь экземпляр класса «MinerGridCo», в котором есть эти элементы UNTURNED_MINE, которые являются целыми числами, которые специально объявлены. –