gpt4 book ai didi

Java MineSweeper 不计算右侧的炸弹

转载 作者:行者123 更新时间:2023-11-30 06:10:01 27 4
gpt4 key购买 nike

为了练习,我正在遵循扫雷教程,但在将每个方格周围的炸弹数量相加时,它不会计算右侧的炸弹,而且我不完全确定问题是什么。我尝试过重新启动、在多个编译器中打开它、移动它,但什么也没有。我查了又查,没有发现任何逻辑错误。

下面是我的计数代码。最后一个 if 语句是计算右侧正方形的语句。

btnAmt = 10

background 是一个包含所有地雷值的二维数组。

如果错误不在此处,我可以发布完整的代码,但我很沮丧,因为似乎没有逻辑错误,并且所有其他方向都有效。

//Count neightbouring mines
for(int x = 0; x < background.length; x++){
for(int y = 0; y < background[0].length; y++){
int nCount = 0;
if(background[x][y] != MINE){
if((x > 0) && (y > 0) && (background[x-1][y-1] == MINE)){ //up and left
nCount++;
}
if(y > 0 && background[x][y-1] == MINE){ //Up
nCount++;
}
if(x < btnAmt-1 && y > 0 && background[x+1][y-1] == MINE){ // Up Right
nCount++;
}
if(x>0 && background[x-1][y] == MINE){ //Left
nCount++;
}
if(x>0 && y<btnAmt-1 && background[x-1][y+1] == MINE){ //Down and left
nCount++;
}
if(x<btnAmt-1 && y<btnAmt-1 && background[x+1][y+1] == MINE){//Down and right
nCount++;
}
if(x<btnAmt-1 && background[x+1][y] == MINE){ //Right
nCount++;
}
background[x][y] = nCount;
}
}
}

最佳答案

您从未检查过背景[x][y+1]。这是“正确”的方向,您所说的“正确”的方向 (background[x+1][y]) 实际上是向下

请记住,mat[i][j] 表示(按照惯例)第 i 行和第 j 列矩阵mat。因此,向右意味着向该列添加 1,因此 mat[i][j+1]

关于Java MineSweeper 不计算右侧的炸弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50457277/

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