我一直在研究 A* 寻路算法的 C# 实现,现在我已经设法让它找到一条从起点到目的地的路径,我想知道如何才能选择最佳路径。
澄清一下,如果我让程序找到一条从黄色边框的方 block 到绿色边框的方 block (深灰色方 block 不能穿过)的路线,程序会将所有红色方 block 添加到它的 '封闭'阵列。
如您所见,这不是直接路线。我如何从封闭数组中获取实际路径?顺便说一下,我禁用了对角线移动。
最佳答案
我已经有一段时间没做 A* 了,但如果我没记错的话,你可以向后追溯,从末端开始,沿着最短距离的路径走。
因此,如果此网格上的数字表示到黄色方 block 的距离,则可以找到最短路径,方法是从绿色方 block (距离 12)开始,并不断移动到距离最短的邻居,直到到达黄色方 block 。
所以你会去 12 -> 11 -> 10 -> 9 ... -> 0
关于c# - 如果 A* 算法探索了不止一条路径,你如何选择最好的一条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38380987/