Создайте плату тральщика, которая не нуждается в угадывании

Я разрабатываю игру, подобную Minesweeper (с измененными правилами), и я хочу, чтобы игрок не догадывался. Моя цель: сформированная доска с несколькими открытыми клетками, и игрок может решить всю загадку без каких-либо угадываний.

Wikipedia:

Некоторые реализации Minesweeper установят плату, никогда не помещая шахту на первый квадрат, обнаруженный, или путем размещения платы так, чтобы решение не требовало угадывания.

Однако я не могу понять алгоритм.

Кроме того, в другом вопросе StackOverflow: Алгоритм решения Minesweeper

Улучшение: запустите решатель вместе с генератором, убедившись, что головоломка имеет уникальное решение. Это требует некоторой хитрости и не выполняется в большинстве вариантов.

Я сомневаюсь, что это действительно работает. Это хорошо известный решение тральщика является NP-полным.

В заключение, мои вопросы:

  • Как сгенерировать плату Minesweeper, которая не нуждается в каких-либо угадываниях?
  • Если можно, какой конкретный алгоритм?
  • Можем ли мы решить эту проблему в полиномиальном времени детерминированным образом? Является ли эта проблема NP-полной? Как это доказать?

Ответы

Ответ 1

Реализация Minesweeper в Simon Tatham Portable Puzzle Collection не угадывает. (Он также лицензирован MIT, поэтому вы можете скопировать его реализацию, если захотите.)

Ответ 2

Известный решает тральщик с NP-полным.

Это верно, но, возможно, не так важно, как вы думаете. Предлагаемый алгоритм - это что-то вроде "многократно генерирует произвольные доски, пока компьютер не сможет его решить". NP-твердость является свойством наихудшего случая, но здесь нас действительно интересует твердость в среднем корпусе. Если будет создана необычно жесткая плата, мы можем отключить решатель и перезапустить новую плату.

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