gpt4 book ai didi

java - JAVA忽略越界异常的简单方法

转载 作者:行者123 更新时间:2023-11-29 07:46:08 24 4
gpt4 key购买 nike

我正在创建一个类似扫雷器的应用程序,并且有一些代码旨在检查一个非地雷空间周围有多少地雷。我为此创造了一些东西

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);

但是,当旨在获取板边缘周围的地雷编号时,这会产生错误。有什么有用的方法可以避免这种情况?

尝试以下建议后。我仍然遇到越界错误。任何人有任何建议,如果有人想自己编译,这里是 repo https://github.com/phillolivercomp/MineSweeper.git

最佳答案

帮自己一个忙,创建 model.countUnturnedMinesAround(i,j)。然后在模型内部你有一些选择。

您可以创建 View 看不到的额外行/列,以便您可以安全地处理逐一索引。

或者您可以编写一个函数 private Cell getCell(i,j),当 i 和 j 越界时返回默认的空单元格。

或者您可以让 boolean hasUnturnedMine(i,j) 在 i 或 j 离开网格时返回 false。

关于java - JAVA忽略越界异常的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25573199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com