我需要为我的项目制作一个简单的(标准)扫雷。 我想检查一个2d数组的随机(或特定)元素的周围元素。检查数组元素周围的单元格java
可以说我有这样的
boolean board[5][5]
我要检查我写的
board[0][0]
周边元素的数组:
public int numberChecker(int h, int w) {
int checker = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
int he = h - 1 + i;
int wi = w - 1 + i; <---- this i should be j that was the issue
if (board.getHeight() > he && he >= 0
&& wi >= 0 && board.getWidth() > wi) {
if (boomChecker(he, wi)) {
if (w != (wi) && h != (he)) {
checker++;
}
}
}
}
}
return checker;
}
问题我认为它只检查“\”方式(不知道如何把它用文字)
例如:
(输出#意味着覆盖的数字意味着周边矿山)
揪出4-2
######
######
0#####
#0####
##0### <-- unlocking this one
###0##
或
发现0-0
0#####
#0####
##0###
###### <-- there is a mine at check spot
######
######
代码本身并不重要(我知道我做了一个有点复杂,解释自己)
所有我需要的是周围的提前
感谢检查循环(或任何东西)工作
问题解决了 简单的愚蠢的错误 int he = h - 1 + i; int wi = w - 1 + i; < ---我应该Ĵ 感谢
项目?这是'家庭作业'的代码?如果是这样,请添加一个作业标签。哦,和“\”的方式被称为“对角线” – TheZ 2012-07-10 21:52:12
但只有\方式对角线 /这也是一个对角线,这就是为什么我没有说对角线:) – 2012-07-10 21:54:25
我会用东南(“\”)和南 - 西方(“/”)方向术语。 – user845279 2012-07-10 21:57:19