Создать доску сапера, которую не нужно угадывать

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

В Википедии упоминается:

Некоторые реализации «Сапера» настраивают доску, никогда не ставя мину на первый открытый квадрат или располагая доску так, чтобы решение не требовало угадывания.

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

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

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

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

В общем, мои вопросы:

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

16
задан Community 23 May 2017 в 12:34
поделиться