【问题标题】:Finding the closest point on a grid with obstacles在有障碍物的网格上找到最近的点
【发布时间】:2014-02-20 12:39:12
【问题描述】:

我有一个游戏,你必须在地图上移动收集金币,然后移动到出口。我目前正在尝试编写一个可以玩这个游戏的 AI,但我想知道我应该使用什么算法来查找最近的对象实例。例如,最近的一块金子或最近的未知地图方块。问题是玩家无法穿过墙壁,所以我需要找到最近的物体,而不是找到最近的物体。有没有算法可以做到这一点?

【问题讨论】:

    标签: algorithm grid shortest-path


    【解决方案1】:

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

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

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

    其他资源:

    【讨论】:

    • 如果机器人不知道整个地图,我将如何修改此算法以使其工作?只有它周围的一个区域和它以前去过的任何区域。
    • @CountBale 您至少必须知道预期的目的地是什么。如果您只是探索地图以查找资源(例如黄金),那么我建议您多次运行您的算法,每次随机选择地图上的坐标。显示足够多的地图后,开始寻找通往实际资源的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多