嗨,我几乎完成了这个创建扫雷舰类游戏的程序。它完美地编译和运行,游戏显示在GUI客户端程序中,但出现了一个问题。
在玩游戏时,有时会出现a1,当它有超过1个相邻的地雷时,或者当它周围的八个方块中的一个实际上有一个地雷时,会出现0。如有任何帮助/建议,我们将非常感谢!
private void countAdjacentMines()
{
// TO DO: STUDENT CODE HERE
for (int i = 0; i < mineField.length; i++)
{
for (int j = 0; j < mineField.length; j++)
{
if (!(mineField[i][j].getIsMine()))
{
int count = 0;
for (int p = i -1; p <= i + 1; p++)
{
for (int q = j - 1; q < j + 1; q++)
{
if (0 <= p && p < mineField.length && 0 <= q && q < mineField.length)
{
if (mineField[p][q].getIsMine())
count++;
} // end if
} // end for
} // end for
mineField[i][j].setAdjacentMines(count);
} // end if
} // end for loop rows
} // end for loop columns
} // end countAdjacentMines发布于 2011-08-06 04:10:48
你的内部循环的条件是关闭的。
for (int q = j - 1; q < j + 1; q++)应该是
for (int q = j - 1; q <= j + 1; q++)
^^https://stackoverflow.com/questions/6961994
复制相似问题