Как обнаружить "победу" в игре Сапер?

Я работаю над тральщиком, который у меня почти готов.

Единственное, чего не хватает - это обнаружения выигрыша. Как лучше всего это осуществить? Я знаю, что он будет частью ActionListener, который обнаруживает клики, в какой-то момент последний клик должен определить победителя.

Кто-нибудь может дать мне несколько идей, спасибо!

2 ответа

Решение

Игрок выиграл, если

numUnopenedCells == numBombs

(где ячейка неоткрыта, если она находится в своем начальном состоянии или помечена как мина).

  • Если numUnopenedCells > numBombs тогда у игрока есть неоткрытые ячейки, которые не являются бомбами (то есть, осталось выполнить какую-то работу)
  • Если numUnopenedCells < numBombs тогда игрок обязательно "открыл" ячейку с бомбой и уже проиграл.

Я знаю, что он будет частью ActionListener, который обнаруживает клики, в какой-то момент последний клик должен определить победителя.

Да, этот фрагмент будет выполняться прямо или косвенно слушателем действия. Я хотел бы предложить вам модель состояния игры, а в openCell(int x, int y) Метод, который вы проверите выше, и принять соответствующие меры.

Если открытые поля #(all fields) - #(bomb fields),

Другие вопросы по тегам