扫雷数量的地雷java

时间:2011-08-05 20:04:36

标签: java

嗨,所以我差不多完成了这个创建类扫雷游戏的程序。它编译和运行完美,游戏出现在GUI客户端程序中,但是会出现一个问题。

在比赛时,有时a 1会在有超过1个相邻的地雷时出现,或者当有8个正方形中的其中一个有一个地雷时会出现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

1 个答案:

答案 0 :(得分:3)

你的内循环的条件是关闭的。

for (int q = j - 1; q < j + 1; q++)

应该是

for (int q = j - 1; q <= j + 1; q++)
                      ^^