重温 A* 算法
A* 算法用于寻找从开始点至目标点之间的一条可达路径.A* 算法在寻路过程中会使用一种简单的方法来评估当前节点与目标点之间的距离.通过将已经经过的路径距离和预估的路径距离相加,算法会首先扩展搜索那些最有...)
对于该节点每一个不在关闭列表中的相邻节点:
将该节点设置为当前相邻节点的父节点(主要用于后面的节点回溯)
计算当前相邻节点的 G 值(从开始点到当前相邻点的距离)并将其加入到开放列表中...使用 字典(或者说优先级队列) 或者 堆 来替代 列表 也可以加速 A* 算法.在这些数据结构中遍历元素非常之快,这会非常有助于你在其中搜索某一节点,同样的,在有序字典或者最小堆中,我们也能很方便的找到具有最低...如果你不知道上述代码里模板参数中的 compare 是什么,你可以简单理解是一种定义了如何比较节点的简单数据结构.
?...我们将当前节点的分值设置为最低,并且将其 on_close 变量设置为 true,正常来说,我们应该将节点放置于关闭列表中,但是设置节点变量数据是效率更高的一种方式.OK,现在是时候扩展相邻节点了,扩展之前我们需要检查相邻节点是否已经处于关闭列表中