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

发布于 2024-12-08 07:37:55 字数 210 浏览 0 评论 0原文

我正在开发一个扫雷,我已经基本完成了。

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

谁能给我一些想法谢谢!

I am working on a Minesweeper which I have pretty much complete.

The only thing missing is the detection of winning. What would be the best way to implement this? I know its going to be part of the actionlistener that detects clicks, at some point the last click should detect a winner.

Could anyone give me some ideas thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜心小果奶 2024-12-15 07:37:55

则玩家获胜

numUnopenedCells == numBombs

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

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

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

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

The player has won if

numUnopenedCells == numBombs

(where a cell is unopened if it is in its initial state, or flagged as a mine).

  • If numUnopenedCells > numBombs then the player has unopened cells which are not bombs (i.e. some work left to do)
  • If numUnopenedCells < numBombs then the player has necessarily "opened" a bomb cell and already lost.

I know its going to be part of the actionlistener that detects clicks, at some point the last click should detect a winner.

Yes, this snippet would be executed directly or indirectly by the action listener. I'd suggest you have a model of the game state, and in the openCell(int x, int y) method you check the above, and take the appropriate action.

顾北清歌寒 2024-12-15 07:37:55

如果打开的字段为#(所有字段) - #(炸弹字段)

If the opened fields are #(all fields) - #(bomb fields).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文