Как обнаружить «победу» в игре Сапер? - PullRequest
1 голос
/ 05 октября 2011

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

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

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

Ответы [ 2 ]

4 голосов
/ 05 октября 2011

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

numUnopenedCells == numBombs

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

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

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

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

1 голос
/ 05 октября 2011

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

...