0
我和我的兄弟正在制作扫雷游戏。我们已经做出了几乎所有的事情,但是我们在找到旁边有多少个地雷时遇到了问题。我的兄弟试图用if和else来表达,但我认为使用循环更好。我做了一个循环,但我有一个问题。它计数左侧和右侧。我应该如何解决它。这里是我的代码:C++扫雷艇AjacentMines
int p_col = col - 1;
int p_row = row - 1;
for (int j = 0; j < 3; j++){
if (p_col + j >= 0){
if (p_row + j >= 0){
if (row + j <= height){
if (isTileMine(p_row + j, p_col))
miner++;
if (isTileMine(p_row + j, p_col + 1)){
//Teller ikke seg selv
if (p_row + j == p_row + 1){}
else{
miner++;
}
}
if (isTileMine(p_row + j, p_col + 2))
miner++;
}
}
}
}
谢谢你的回答。我试过做循环,但是当我运行它时程序没有响应。我调试并发现它是因为它调用[] [ - 1]。我有一个if语句,所以我不知道它为什么会发生。 '对(INT J = 0;Ĵ<3; J ++){ \t \t如果(p_row + J> = 0 && p_col + J <=高度){ \t \t \t的for(int i = 0; I <3;我++){ \t \t \t \t如果(p_col + I> = 0 && p_col + I <=宽度){ \t \t \t \t \t如果(isTileMine(p_col + J,p_row + i))的 \t \t \t \t \t \t矿工++; \t \t \t \t} \t \t \t} \t \t} \t}' – user3604304
我知道我计算发现问题poistion本身 – user3604304
。我以错误的顺序调用了isTileMine – user3604304