找到带有障碍物的网格上的最近点

时间:2014-02-20 12:39:13

标签: algorithm grid shortest-path

我有一个游戏,你必须在收集黄金的地图上移动,然后移动到出口。我目前正在尝试编写一个可以玩这个游戏的人工智能,但我想知道我应该使用什么算法找到最近的对象实例。例如,最接近的金块或最接近的未知地图方块。问题在于玩家无法穿过墙壁,因此我不需要找到最接近的物体,而是找到最短路线的物体。有算法可以做到吗?

1 个答案:

答案 0 :(得分:5)

您正在寻找的算法称为A *搜索算法。它是一种最佳优先搜索算法,它起始于起点并构建一系列可能的路径(不包括通过障碍物,因为那些不是可能的路径),然后对这些路径进行评分以找到成本最低的路径。在您的情况下,您需要通过降低基于路径上对象的成本并按距离增加成本来自定义评分。

这里有一些信息可以帮助你:

这里有一个漂亮的交互式演示(代码也在github上):http://qiao.github.io/PathFinding.js/visual/

enter image description here

其他资源: