【发布时间】:2015-09-08 21:45:19
【问题描述】:
我目前正在计划一款游戏,但我很难弄清楚寻路算法,我想知道是否有一个慷慨的灵魂能够帮助我。
这是场景,我需要一个算法来计算是绕过障碍物还是摧毁它们更好。我给我的游戏的每个图块一个“难度”。例如,基本图块是 1,障碍物可以在 5-100 之间。
这里有一些例子。我必须从红场搬到蓝场。如果我在路上设置障碍,我应该得到这样的东西:
解释:左或右路径只有3个难度,障碍物是5个。所以最好绕着走。
第二个例子:
解释:算法为3选择,打破障碍或左右走动,因为它是相同的难度级别。
最后一个例子:
解释:算法必须能够找到一个“弱点”并能够走到它并摧毁它。
我会继续努力。希望你能给我一些指导。
【问题讨论】:
-
A*?
-
如果您可以提供这样的数字难度权重,应该很容易找到最简单的路径。 Dijkstra 的图搜索算法会很容易地找到最短路径,并且以更高的实现复杂度为代价,A* 也可以做到这一点,但速度稍快一些。 (A* 基本上是 Dijkstra 的启发式算法,可以更快地找到更好的选择)。
-
我用过的最直观的 A* 解释在这里:policyalmanac.org/games/aStarTutorial.htm
-
这里有gamedev.stackexchange.com,可能会给你一些针对游戏的建议。