ConnectAll游戏算法

时间:2013-05-11 07:34:20

标签: algorithm game-physics

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

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

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

任何人都可以告诉我,我应该使用哪种算法在Windows中克隆这个游戏。

由于

1 个答案:

答案 0 :(得分:0)

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

董事会可以翻译成图表。每个部分都是一个节点,连接是边缘。有许多图包和算法可以找到哈密顿路径。您可以轻松创建自己的模型和递归或迭代解决方案。

解决方案搜索次数的上限可以是猜测:我们有4个节点有2个边,只做1个选择,因子为1 ^ 2。 8个节点有3个边,有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的所有可能性。

如果我们只是想制作不同的谜题,那么随机方向的回溯将会非常精细。应该可以实现易于实施和快速运行。