6

我想创建一个可以生成哈希谜题的 iPhone 应用程序(如果你不知道这个谜题,这里是维基百科的文章:https ://en.wikipedia.org/wiki/Hashiwokakero )。我认为开发求解算法对我来说不会太难,但是我不确定如何生成它。

这就是我的做法(如果可行的话,我会这样做);我生成了几个岛(或段),但前提是它们允许可能的解决方案。然后,在每个生成的岛之后,我运行求解算法,看看是否可以求解。如果是,完成。否则,我要么删除该段并生成一个不同的段,要么添加另一个段。

你怎么看?这会奏效吗,有没有更有效的方法?

4

1 回答 1

3

我会一步一步地构建一个解决方案,每次:

  • 添加一个节点
  • 向其添加一个或多个桥(如果不可能,则选择一个新节点)
  • 增加计数器。
  • 将桥梁使用的地方标记为不可用。

这确保有一个解决方案,但我猜一个真正的难题只有一个解决方案,所以稍后您必须使用求解器验证这一点,并且可能添加/删除节点直到它满足此规则。

于 2012-04-22T16:06:22.137 回答