我正在用 Java 开发一个扫雷程序。我的炸弹分布在整个现场,我的动作监听器响应点击,鼠标监听器响应右键单击。我还让每个被点击的方格检查有多少炸弹与其相邻,并像在游戏中一样在方格上打印数字。
我不明白的唯一部分是扫雷如何在单击正方形时打开字段,无论它是数字还是空白正方形。请帮助我了解这是如何工作的。
我正在用 Java 开发一个扫雷程序。我的炸弹分布在整个现场,我的动作监听器响应点击,鼠标监听器响应右键单击。我还让每个被点击的方格检查有多少炸弹与其相邻,并像在游戏中一样在方格上打印数字。
我不明白的唯一部分是扫雷如何在单击正方形时打开字段,无论它是数字还是空白正方形。请帮助我了解这是如何工作的。
我不明白的唯一部分是扫雷如何在单击正方形时打开字段,无论它是数字还是空白正方形。
如果它的任何相邻方格有地雷,它将显示一个数字,其中包含周围地雷的数量。
如果它周围没有地雷,则它是空白的(即:如果必须,它将显示数字 0)。当它为空白时,它还递归地打开所有邻居(例如:如果所有邻居及其邻居也为空白,则打开所有邻居及其邻居,依此类推)。
如果它是一个地雷,你当然会失去。一个例子:
X 2 . .
X 2 . .
2 2 1 .
1 X 1 .
(让X
表示一个地雷)。
如果您打开任何标记为.
(空白)的方格,自动展开所有方格及其旁边的数字:
- 2 . .
- 2 . .
- - 1 .
- - 1 .
(让-
表示一个隐藏的正方形)。
如果是炸弹,你就输了。
如果它是一个数字,那么它只会显示该数字。
如果它是一个空方格,也就是说,一个没有相邻的炸弹,那么它就是一个空白方格,并且在被揭示后,游戏会显示与它接触的所有其他空白方格(这个过程一直持续到所有相邻的方格新创建的空字段是它们自己与至少一个炸弹相邻的字段(也就是说,有一个数字))