嗨,我正在构建一个程序,用Java创建经典的扫雷游戏,几乎所有内容都消失了,但是我不知道如何检查地雷周围的方块并写下数字(例如,是否有一个,两个,旁边的三个地雷)。我只包括它所使用的方法,但是如果需要,我可以发布程序的其余部分。我的方法应该是什么?谢谢!

private void countAdjacentMines()
{
            for (int i = 0; i < mineField.length; i++)
    {
        for (int j = 0; j < mineField.length; j++)
        {
            if (!(mineField[i][j].getIsMine()))
            {
                mineField[i-1][j-1];
                mineField[i-1][j];
                mineField[i-1][j+1];
                mineField[i][j-1];
                mineField[i][j+1];
                mineField[i+1][j-1];
                mineField[i+1][j];
                mineField[i+1][j+1];

                mineField[i][j].setAdjacentMines(0);
            }
        } // end for loop rows
    } // end for loop columns
} // end countAdjacentMines

最佳答案

像这样:

private void countAdjacentMines()
{
    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;
                        }
                    }
                }

                mineField[i][j].setAdjacentMines(count);
            }
        } // end for loop rows
    } // end for loop columns
} // end countAdjacentMines

关于java - 扫雷游戏方块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6961227/

10-09 19:36