一尘不染

生成不需要猜测的扫雷板

algorithm

我正在设计类似《扫雷》的游戏(具有经过修改的规则),并且我想防止玩家猜测。我的目标是:生成的棋盘上几乎没有显示正方形,并且玩家无需任何猜测即可解决整个难题。

维基百科提到:

Minesweeper的某些实现将通过从不在所显示的第一个正方形上放置地雷,或通过排列电路板来设置该电路板,从而使解决方案无需猜测。

但是,我无法弄清楚该算法。

改进:在生成器旁边运行求解器,确保拼图具有唯一的解决方案。这需要一些技巧,并且在大多数变体中都没有做到。

我怀疑这是否真的有效。众所周知,扫雷器是NP完整的。

总而言之,我的问题是:

  • 如何生成不需要任何猜测的扫雷板?
  • 如果可以,具体的算法是什么?
  • 我们可以确定性地在多项式时间内解决这个问题吗?这个问题NP是否完整?如何证明呢?

阅读 284

收藏
2020-07-28

共1个答案

一尘不染

Simon Tatham的Portable Puzzle
Collection中
的Minesweeper的实现无需猜测。(它也是麻省理工学院的许可,因此,如果您愿意,可以自由复制他的实现。)

2020-07-28