Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在有障碍物的栅格上查找最近点_Algorithm_Grid_Shortest Path - Fatal编程技术网

Algorithm 在有障碍物的栅格上查找最近点

Algorithm 在有障碍物的栅格上查找最近点,algorithm,grid,shortest-path,Algorithm,Grid,Shortest Path,我有一个游戏,你必须在地图周围移动,收集金子,然后移动到出口。我目前正在尝试编写一个AI来玩这个游戏,但我想知道我应该使用什么算法来查找最接近的对象实例。例如,最近的一块黄金或最近的未知地图方块。问题是,有一些墙是玩家无法穿过的,所以我需要找到的不是最近的物体,而是有最短路线的物体。有一种算法可以做到这一点吗?您正在寻找的算法称为*搜索算法。这是一种最佳的优先搜索算法,它从起点开始,建立一系列可能的路径,不包括通过障碍物,因为这些都是不可能的路径,然后对这些路径进行评分,以找到成本最低的路径。在

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

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

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

github上还有一个漂亮的交互式演示代码:

其他资源:


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

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

github上还有一个漂亮的交互式演示代码:

其他资源:


如果机器人不知道整个地图,我如何修改这个算法?只有它自己周围的一个区域和它以前去过的任何区域。@CountBale您必须至少知道预期的目的地是什么。如果你只是在地图上寻找你的资源,例如黄金,那么我建议你将你的算法运行几次,每次随机选择地图上的坐标。当你的地图显示足够多后,开始寻找你实际资源的路径。如果机器人不知道整个地图,我如何修改这个算法?只有它自己周围的一个区域和它以前去过的任何区域。@CountBale您必须至少知道预期的目的地是什么。如果你只是在地图上寻找你的资源,例如黄金,那么我建议你将你的算法运行几次,每次随机选择地图上的坐标。在足够多的地图被展示后,开始寻找通往实际资源的路径。