【问题标题】:A* Star Pathfinding help!A*星寻路帮助!
【发布时间】:2011-02-20 08:05:09
【问题描述】:

在许多 A* Start Pathfinding 教程中,最后一部分总是这样;

保存路径。从目标方格向后工作,从每个方格到其父方格,直到到达起始方格。那是你的道路。

我真的不明白我应该做什么来在我的 A * 星寻路中实现这一点。我正在使用的当前方法如下;我保存路径,反转它,再次运行路径查找器,但我通过检查它们是否在原始路径列表中来获取相邻节点,如果它们在列表中则添加它们。

这种方法的问题是我有时会得到一些奇怪的路径。

【问题讨论】:

  • 使用homework 标记(如果适用)。 (维基百科有不错的起始文章A* 和相关的Dijktra's Algorithm)。如果答案回答了问题,请务必接受。欢迎来到 SO。

标签: path-finding


【解决方案1】:

您只需要为您访问的节点保留一张“来自”地图。

当您到达目标时,您可以通过在节点上递归轮询“来自”的方式返回源节点,直到该节点成为源节点。

请注意,这将为您提供相反的路径。您只需反转此路径,即可获得从源到目标的最短路径。

您不必再次运行最短路径算法。

【讨论】:

  • 感谢您的帮助,它确实解决了我的问题 :)
【解决方案2】:

如果您还没有阅读此内容,请查看: http://theory.stanford.edu/~amitp/GameProgramming/

这是我为游戏实现 A* 时的资源。你提到的“父母”广场不是一个好名字。正如 turbovince 提到的,它不是“父”节点,而是您来自哪里。每个节点都有一个引用,因此当您最终到达目标时,您应该能够将这些引用遍历回原点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多