Search 寻找未知迷宫的路径
我有一个基于瓷砖的迷宫。开始时,我知道我的坐标,目标瓷砖的坐标,在每个点上,我可以告诉我可以移动到四个相邻瓷砖中的哪一个。这意味着我必须探索迷宫,因为我试图解决它,以了解更多关于它Search 寻找未知迷宫的路径,search,graph,depth-first-search,path-finding,a-star,Search,Graph,Depth First Search,Path Finding,A Star,我有一个基于瓷砖的迷宫。开始时,我知道我的坐标,目标瓷砖的坐标,在每个点上,我可以告诉我可以移动到四个相邻瓷砖中的哪一个。这意味着我必须探索迷宫,因为我试图解决它,以了解更多关于它 考虑到迷宫需要探索,解决该图的合适算法是什么?我建议研究A*算法、Dijkstra算法、d*算法、深度优先搜索和广度优先搜索。。跳转点搜索 这里有一个很好的演示: 如果你需要任何帮助,只要问一下,我主要是C++,还有java、c++和python。p> 在寻路之前,您不需要了解任何有关“迷宫/网格”的知识,因为您将
考虑到迷宫需要探索,解决该图的合适算法是什么?我建议研究A*算法、Dijkstra算法、d*算法、深度优先搜索和广度优先搜索。。跳转点搜索 这里有一个很好的演示:
如果你需要任何帮助,只要问一下,我主要是C++,还有java、c++和python。p> 在寻路之前,您不需要了解任何有关“迷宫/网格”的知识,因为您将只检查近邻
B、C、C B A C C C B 其中A=代理,B=阻塞,C=清除 如果您使用的是A*实现,您将有两个列表: 打开:添加您遇到的所有可移动节点(在我的示例C中为可移动节点) 关闭:决定下一步移动的节点,将节点添加到关闭列表中 成本由F(G+H)评估 G=实际成本(每次移动时累计),例如垂直/水平移动+10,对角线移动+15 H=是您的启发式,通常使用类似曼哈顿距离的值,即从代理A到目的地D的距离,仅考虑水平和垂直移动如你所见。。你不需要知道地图的细节。有许多不同的迷宫求解算法。突出显示一个少数人,他们一直在努力寻找任何考虑到有待探索的迷宫的资源。请在gamedev.stackexchange上查看关于D*算法的答案。如果这是一个完美的迷宫,您可以使用右手法则。如果您访问了两次(回溯),只需从解决方案中删除您已经看到的任何位置。