gpt4 book ai didi

Java编程——用于扫雷游戏的嵌套for循环

转载 作者:行者123 更新时间:2023-11-29 05:37:17 25 4
gpt4 key购买 nike

目前正在制作一个扫雷游戏并坚持能够循环遍历周围的 8 个单元格以找到周围炸弹的数量。我有一个我认为可以正常工作的辅助方法,用于检查单元格(由 numberOfAdjacentBombs 传递)是否包含炸弹。我如何着手创建一个将循环遍历每个周围单元格的嵌套 for 循环?例如 (row-1, col-1), (row-1, col), (row-1, col+1).

感谢任何帮助或提示,谢谢! :-)

 private int numberOfAdjacentBombs(int row, int col){
int count = 0;
//nested for loop
count += getIfBomb(int, int)
}

辅助方法检查单元格是否包含炸弹,如果包含则返回 1,否则返回 0。

private in getIfBomb(int row, int col){
if(cells[row][col].getHasBomb() == true){
return 1;
}else{
return 0;
}
}

最佳答案

不考虑边界检查...

您需要检查之前的列和行,实际的列和行以及之后的列和行....

有点像...

row - 1, col - 1
row - 1, col
row - 1, col + 1
row, col - 1
row, col
row, col + 1
row + 1, col - 1
row + 1, col
row + 1, col + 1

这可能看起来像...

for (int visitRow = row - 1; visitRow < row + 1; visitRow++) {
for (int visitCol = col - 1; visitCol < col + 1; visitCol++) {
count += getIfBomb(visitRow, visitCol)
}
}

现在,您的 getIfBomb 方法将需要对传递的值进行范围检查,以检查它们是否超出数组范围...但我想我可以将其留给你……

关于Java编程——用于扫雷游戏的嵌套for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19019531/

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