【发布时间】:2014-02-20 12:39:12
【问题描述】:
我有一个游戏,你必须在地图上移动收集金币,然后移动到出口。我目前正在尝试编写一个可以玩这个游戏的 AI,但我想知道我应该使用什么算法来查找最近的对象实例。例如,最近的一块金子或最近的未知地图方块。问题是玩家无法穿过墙壁,所以我需要找到最近的物体,而不是找到最近的物体。有没有算法可以做到这一点?
【问题讨论】:
标签: algorithm grid shortest-path
我有一个游戏,你必须在地图上移动收集金币,然后移动到出口。我目前正在尝试编写一个可以玩这个游戏的 AI,但我想知道我应该使用什么算法来查找最近的对象实例。例如,最近的一块金子或最近的未知地图方块。问题是玩家无法穿过墙壁,所以我需要找到最近的物体,而不是找到最近的物体。有没有算法可以做到这一点?
【问题讨论】:
标签: algorithm grid shortest-path
您正在寻找的算法称为 A* 搜索算法。这是一种最佳优先搜索算法,它的工作原理是从起点开始并建立一系列可能的路径(不包括通过障碍,因为那些不是可能的路径),然后对这些路径进行评分以找到成本最低的路径。在您的情况下,您需要通过根据路径上的对象降低成本并根据距离增加成本来自定义评分。
这里有一些信息可以帮助你:
这里有一个漂亮的交互式演示(代码也在 github 上):http://qiao.github.io/PathFinding.js/visual/
其他资源:
【讨论】: