gpt4 book ai didi

java - 扫雷机清点地雷不起作用

转载 作者:行者123 更新时间:2023-11-30 02:20:14 27 4
gpt4 key购买 nike

所以,我正在计算附近地雷的数量,假设所选地点没有地雷,这就是我的结论:

public static int numNearbyMines( boolean [][]mines, int row, int col) {    

int nearbyMines = 0;

if (mines[row - 1][col] == true) { nearbyMines += 1; }
if (mines[row - 1][col - 1] == true) { nearbyMines += 1; }
if (mines[row - 1][col + 1] == true) { nearbyMines += 1; }
if (mines[row][col + 1] == true) { nearbyMines += 1; }
if (mines[row][col - 1] == true) { nearbyMines += 1; }
if (mines[row + 1][col] == true) { nearbyMines += 1; }
if (mines[row + 1][col - 1] == true) { nearbyMines += 1; }
if (mines[row + 1][col + 1] == true) { nearbyMines += 1; }
return nearbyMines;
}

但是,我意识到这种方法行不通,因为如果我选择一个地方,例如角落,它将在数组之外“读取”,因此行不通。我该如何改变它,以便即使我选择了一个角,它也只能在数组内部读取?

最佳答案

我对此类问题的解决方案是创建一个安全读取数组的函数。示例:

boolean readMines(int x, int y) {
if(x >= 0 && x < mines.length && y >= 0 && y < mines[0].length) {
return mines[x][y];
}
return false;
}

这会检查以确保在阅读之前按照您提供的索引进行阅读是安全的,并假设无法阅读的地方没有地雷。它应该可以满足您的需要。

关于java - 扫雷机清点地雷不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47066766/

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