如何检测扫雷游戏中的“胜利”?

use*_*597 1 java minesweeper

我正在开发一款扫雷游戏,目前已经基本完成。

唯一缺少的是获胜的检测。实现这一点的最佳方法是什么?我知道它将成为检测点击的动作侦听器的一部分,在某些时候,最后一次点击应该检测到获胜者。

谁能给我一些想法谢谢!

aio*_*obe 5

玩家获胜,如果

numUnopenedCells == numBombs
Run Code Online (Sandbox Code Playgroud)

(如果单元格处于初始状态或标记为地雷,则该单元格未打开)。

  • 如果numUnopenedCells > numBombs玩家有未打开的单元格,这些单元格不是炸弹(即还有一些工作要做)
  • 如果numUnopenedCells < numBombs那么玩家必然“打开”了一个炸弹单元并且已经失败了。

我知道它将成为检测点击的动作侦听器的一部分,在某些时候,最后一次点击应该检测到获胜者。

是的,这个片段将由动作监听器直接或间接执行。我建议您有一个游戏状态的模型,并在openCell(int x, int y)方法中检查上述内容,并采取适当的操作。