1

私はほぼ完成したマインスイーパに取り組んでいます。

足りないのは勝利の検出だけです。これを実装するための最良の方法は何でしょうか?クリックを検出するアクションリスナーの一部になることはわかっています。ある時点で、最後のクリックで勝者が検出されるはずです。

誰かが私にいくつかのアイデアをありがとうと言ってもらえますか?

4

2 に答える 2

4

プレイヤーが勝った場合

numUnopenedCells == numBombs

(セルが初期状態にある場合、または地雷としてフラグが立てられている場合、セルは開かれていません)。

  • その場合numUnopenedCells > numBombs、プレイヤーは爆弾ではない未開封のセルを持っています(つまり、いくつかの作業が残っています)
  • その場合numUnopenedCells < numBombs、プレイヤーは必然的に爆弾セルを「開いて」、すでに負けています。

クリックを検出するアクションリスナーの一部になることはわかっています。ある時点で、最後のクリックで勝者が検出されるはずです。

はい、このスニペットはアクションリスナーによって直接または間接的に実行されます。ゲームの状態のモデルを用意し、そのopenCell(int x, int y)方法で上記を確認し、適切なアクションを実行することをお勧めします。

于 2011-10-04T20:18:17.083 に答える
1

開いているフィールドが#(all fields) - #(bomb fields)

于 2011-10-04T20:10:10.300 に答える