0

这是我感兴趣的游戏视频。

http://www.youtube.com/watch?v=UhWeLmSf6pA

我想知道用于制作挑战模式的算法,如视频所示。

谁能告诉我,我应该使用哪种算法在 Windows 中克隆这个游戏。

谢谢

4

1 回答 1

0

这基本上是一个哈密顿路径问题。如果有人能找到比蛮力更好的通用解决方案,我会很感兴趣。

该板可以转换为图表。每一块都是一个节点,连接是边。有许多图形包和算法可以找到哈密顿路径。您可以轻松创建自己的模型和递归或迭代解决方案。

解决方案搜索数量的上限可以猜测:我们有 4 个节点,有 2 条边,只有 1 个选择和 1^2 的因子。具有 3 条边的 8 个节点,做出 2 个选择,因子为 2^8。4 个节点有 4 个边,做出 3 个选择和 3^4 的因子。起点多了一个选项,乘以 2。当然,我们有 16 个不同的起点。总的来说,上限为 1^2*2^8*3^4*2*16 = 663.552。解决方案的集合会更小,因为我们会有死胡同。

对于这个具体问题,我们甚至可以再减少一点,因为我们只需要三个起点,(0,0)、(0,1)和(1,1)。如果我们有这三点的所有解决方案,我们可以使用一个函数来生成镜像和旋转解决方案。上限为 124.416。

在我们获得所有解决方案之后,我们可以将 2 和 3 点放置在每个解决方案之间的某个位置。我们甚至可以创建一个函数来猜测解决方案的“硬度”,方法是计算将 2 和 3 放在同一节点和同一位置的所有可能性。

如果我们只是想创建不同的谜题,随机方向的回溯将完全没问题。应该期望易于实施和快速的运行时间。

于 2013-05-11T11:51:29.433 回答