我正在研究Java中的扫雷程序。我的炸弹分布在整个领域,我让我的actionlisteners响应点击和mouselistener,响应右键点击。我也点击了每个方格,查看与它相邻的炸弹数量,并在广场上打印数字,就像在游戏中一样。
我唯一不理解的部分是,当点击一个正方形时,扫雷是如何打开场的,无论是数字还是空白正方形。请帮助我了解这是如何工作的。
答案 0 :(得分:4)
我唯一不理解的部分是扫雷是如何在点击正方形时打开场的,无论是数字还是空白正方形。
如果它的任何一个邻近的广场都有一个矿井,它将显示一个数字,其周围有地雷数量。
如果它周围没有地雷,那就是空白(即:如果必须的话,它会显示数字0)。如果它是空白的,它也递归地打开它的所有邻居(例如:如果它们也是空白,则打开所有邻居及其邻居,等等。)
如果它是我的,你当然会失败。一个例子:
X 2 . .
X 2 . .
2 2 1 .
1 X 1 .
(让X
表示我的)。
如果您打开标记为.
(空白)的任何方块,则会自动展开所有这些方块及其旁边的数字:
- 2 . .
- 2 . .
- - 1 .
- - 1 .
(让-
表示隐藏的方块)。
答案 1 :(得分:2)
如果它是炸弹,你输了。
如果是数字,则只显示该数字。
如果它是一个零方块,也就是说,没有相邻炸弹的那个,那么它就是一个空白方块,一旦被揭示,游戏就会显示与其接触的所有其他方块都是空白的(这个过程一直持续到所有方块与新创建的空字段相邻的是与至少一个炸弹相邻的自我(也就是说,有一个数字))