在超级马里奥银河2中寻找最短路径的算法

时间:2015-03-01 01:11:01

标签: algorithm shortest-path path-finding

在超级马里奥银河2中,游戏的最后一级有一个部分,你必须踩开关,当踩到时改变颜色。为了在级别上进步,必须更改每个开关。踩到它时,颜色只会改变一次。为了澄清,如果你踩到它,颜色会发生变化。要再次更改颜色,您必须踩到另一个开关并退回原来的开关。

以下是我正在谈论的内容的视频:https://www.youtube.com/watch?v=dpGjKEt8wmw#t=34

我想知道我可以应用哪种寻路算法来找到通过这部分的最快方法。马上我想到了A *,但我不知道它是否适用,因为我需要点击每个节点并且目标节点与源相同。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了问题,你想要踩到每个块一次,然后踩到所有块。

因此,如果您将此视为一个图形,每个块由一个顶点(以及每对相邻的块 - 水平,垂直或对角线组成和边缘)表示,您需要访问每个顶点一次并返回到源顶点(即形成一个循环)。 但这是一个汉密尔顿循环,它是NP完全的(你需要动态编程来解决它)。