path-finding相关内容

如果被包围,则形成路径的元素无效

我正在构建一个由单元格组成的 2D 网格游戏,玩家必须在其中放置标记并尝试包含(包围)对手的标记.现在每个单元格可以有 3 种状态:空、包含红色标记或包含蓝色标记. 可以形成“路径"的所有单元格都在一个列表中,沿着该路径我可以绘制经过单元格中心的线(多边形).还有一个包含标记的列表,被包围的标记, 现在我想找到一种方法来“无效"一个被包围的令牌,这样它就可以被路径计算忽略 参见以 ..
发布时间:2021-11-18 00:22:29 Java开发

寻路代码产生意想不到的结果

首先,请原谅标题不好,但我不知道如何用一句话来形容... 给定一个包含 3 种字段的网格,空字段、墙壁和出口,我编写了一个程序来检查每个空字段,该字段是否“安全".一个人穿过那个网格,但只能非对角行走,不能穿过墙壁.人从一处开始,随机选择一个方向,然后开始往那个方向走.一旦碰到墙壁,它会再次随机选择一个方向,开始向那个方向移动,依此类推.如果一个人如上所述穿过网格,从该字段开始,确保在某个点 ..
发布时间:2021-06-14 20:13:55 Python

寻路问题

好的,我正在尝试制作一个动态路径系统,以便玩家可以在没有预定义路径的情况下从 A 点移动到 B 点.请注意,此游戏完全基于文本,没有图形.玩家可以向 10 个方向移动:上、下、n、e、s、w、sw、se、nw 和 ne. 整个世界的地图都在一个数据库中,数据库的每一行都包含一个房间或一个节点,每个房间/节点都有它可以去的方向.房间可能不是按顺序排列的.一个例子: 地图号、房间号、Direc ..
发布时间:2021-06-14 20:13:52 其他开发

如何在无网格的二维平面上使用 A* 寻路算法?

如何在没有节点或单元的无网格二维平面上实现 A* 算法?我需要物体绕过目标途中相对较多的静态和移动障碍物.我当前的实现是在对象周围创建八个点,并将它们视为可能是对象潜在位置的假想相邻正方形的中心.然后我为每个计算启发式函数并选择最好的.起点和运动点之间的距离,运动点和目标之间的距离我用勾股定理计算的正常方式.问题是这样的对象通常会忽略所有障碍物,并且更经常在两个位置之间来回移动被卡住.我意识到 m ..
发布时间:2021-06-14 20:13:48 其他开发

游戏寻路

在所有类型的游戏中使用了哪些寻路算法?(无论如何,在字符移动的所有类型中)是否使用过 Dijkstra 的?我并不是真的想编写任何代码;只是做一些研究,不过如果你粘贴伪代码或其他东西,那就没问题了(我可以理解 Java 和 C++). 我知道 A* 就像在 2D 游戏中使用的算法.这很好,但是那些不是基于网格的 2D 游戏呢?诸如帝国时代或林克的觉醒之类的东西.没有可导航到的明显方形空间,那 ..
发布时间:2021-06-14 20:13:42 其他开发

PacMan:主要使用哪些启发式方法?

除了 A*、BFS、DFS 等,还有哪些在 Pacman 中常用的好的寻路算法/启发式算法?如果 pacman 可以找到不止一种水果,我认为我提到的那些不会奏效. 我需要一些好的寻路算法,吃豆人可以用它来以尽可能少的步数完成迷宫.我试图四处寻找指南,但到目前为止还没有运气.曼哈顿距离的 A* 随处可见,但它只适用于只有一个(或两个?或者最多几个?)水果的迷宫. 顺便说一句,为了简单起见 ..
发布时间:2021-06-14 20:13:39 其他开发

使用 Prolog 优化约束逻辑编程中的寻路

我正在开发一个小型 prolog 应用程序来解决 摩天大楼和围栏 拼图. 未解之谜: 已解决的难题: 当我通过程序已经解决的谜题时,它很快,几乎是即时的,为我验证它.当我通过程序非常小的谜题(例如2x2,当然,修改规则)时,找到解决方案也相当快. 问题在于计算“本机"大小为 6x6 的拼图.在中止它之前,我已经让它运行了 5 个小时左右.太多时间了. 我发现耗时最长的 ..

通过矩阵的最佳路径需要考虑多种成本

例如给定以下矩阵: [[[0, 8], [0, 3], [0, 8]],[[8, 0], [3, 0], [0, 5]],[[0, 1], [0, 6], [0, 0]]] 对于每个元组,第一个数字是食物,第二个数字是水.我需要从右下角到左上角,我只能向上或向左移动. 我需要尽可能多地收集食物和水,这样我才能活得尽可能久.对于我想要生存的每一天,我需要 1 份食物和 1 份水,因此如果我 ..
发布时间:2021-06-12 20:47:34 Python

如何在Python中实现15难题的IDA *算法?

我正在尝试使用IDA *算法和Manhattan启发式算法来解决15-Puzzle问题.我已经在此Wikipedia页面(链接)中的伪代码中实现了该算法. > 到目前为止,这是我的代码: def IDA(初始状态,目标状态):initial_node =节点(initial_state)目标节点=节点(目标状态)阈值= manhattan_heuristic(initial_state,g ..

使用Lua的BFS算法可找到2个节点之间的最短路径

我设法编写了一个代码,该代码使用BFS算法遍历所有图形节点.这是容易的部分:) 不,我坚持要获得两个节点之间的最短路径. 到目前为止,这是我的代码: 功能table.contains(表,元素)对于_,成对(表)的值如果值==元素,则返回真结尾结尾返回假结尾队列= {stack = {}}函数队列:en(e)table.insert(self.stack,e)结尾函数队列:de()本 ..
发布时间:2021-04-02 20:43:58 其他开发

拜访最少重复访问图的图中的所有节点

我有一个基于图块的地图,其中一些图块是墙,其他图块是可步行的.步行砖构成了我想在路径规划中使用的图形.我的问题是,他们有什么好的算法可以找到可访问图形中每个节点的路径,从而最大程度地减少重复访问? 例如: 地图示例http://img220.imageshack.us/img220/3488/mapq .png 如果底部的黄色图块是起点,则访问重复次数最少的所有图块的最佳路径是: ..
发布时间:2020-11-20 18:47:02 其他开发

BFS使用哪种启发式方法来解决此“游戏"(查找路径)?

我想解决一个“游戏". 我有5个圆圈,我们可以将圆圈旋转到左侧或右侧(90度). 示例: 我正在使用BFS查找路径,但是我无法发明启发式函数(我的每个解决方案都不好).我正在尝试曼哈顿距离和其他距离...(也许想法不错,但是我的解决方案出了点问题).请帮忙! 解决方案 一个简单的保守(允许的)启发式方法是: 对于每个数字1 ..
发布时间:2020-11-20 06:09:57 其他开发

阻止仙人掌图上的有向路径

我想在仙人掌图上找到最长的路径距离定向路径. 例如,如果我们有以下4个节点, 这意味着 如果我们访问1,我们将无法前往2 即,1→ 2和1-> 3->不允许2个. 然而,2→允许1个. 类似 不能从2行驶到3 不能从3行驶到1 不能从1到0行驶 可以旅行其他任何人 因此我们具有路径(1、3、2),(0、2、1)等.因此,最长距离为3. 在这种情 ..
发布时间:2020-11-20 06:07:39 其他开发

计算矩阵中非直接连接节点之间的距离

我为城市建立了邻接矩阵,并在它们之间建立了联系.例如A-B,B-C,C-D.现在,我想知道是否可以计算未连接的城市之间的距离.是否可以计算未连接节点之间的矩阵距离并找到路径? 城市班 import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class GraphCitie ..
发布时间:2020-11-20 05:35:06 Java开发

如何为该A *程序构造邻接表

我试图了解A *路径查找算法,以及如何在python程序中实现它.我发现了此网站,该网站做得非常好解释算法本身是如何工作的,并提供一些示例代码. 在这里我被困住了: def make_graph(mapinfo): nodes = [[AStarGridNode(x, y) for y in range(mapinfo.height)] for x in range(mapinfo. ..
发布时间:2020-09-13 05:09:53 Python

A *是最佳寻路算法吗?

通常说A *是解决寻路问题的最佳算法. 在A *不是 的最佳算法时,有什么情况吗? A *与BFS,DFS,UCS等相比有多好? 解决方案 简短的答案是肯定的,在某些情况下,A *不是解决问题的最佳算法.但是,有许多方法可以评估用于寻找解决方案的 best 算法的组成. 如果您考虑从单个来源到多个目的地的多次搜索的效果最佳,那么您应该考虑使用一种更合适的方法( Dijks ..

寻路-最少转弯的A *

是否可以修改A *以返回具有最少转弯次数的最短路径 ? 一个复杂之处:节点不再能够仅通过位置来区分,因为它们的父节点与确定未来的转向相关,因此它们也必须具有与之关联的方向. 但是我遇到的主要问题是如何将匝数转换为部分路径成本(g).如果我将g乘以匝数(t),就会发生奇怪的事情,例如:靠近终点的N匝较长的路径比靠近起点的N匝较短的路径更受青睐. 我正在考虑的另一个较不理想的解决方案 ..
发布时间:2020-09-13 05:07:30 其他开发

所有可能的路径

我目前正在使用AI来玩点游戏(链接).目的是通过用一条线连接颜色相似的点来消除尽可能多的点.我遍历整个电路板并将每组相邻的点用相同的颜色分组.这些组当前都共享相同的突出显示颜色(黑色).因此,例如,左上角的四个红色点形成一个组,右上角的三个黄色点也是如此. 我需要计算通过这些组之一的所有可能路径.谁能想到一个好的算法?如何避免创建重复路径? 我听说在这种情况下稍微修改一下DFS会很好. ..

500+个航路点/节点的最短路径算法(例如Dijkstra)?

我在这里询问了最短路径算法: 2D航路点寻路:将WP组合到从curLocation转到targetLocation (要了解我的情况,请同时阅读该问题和该问题.) 看来Dijkstra最短路径算法将能够满足我的需要.但是,我的路线图中大约有500到1000个节点. 到目前为止,我所看到的实现将节点的数量限制在50个以下.我的问题是:我是否仍应使用Dijkstra最短路径算法或替代 ..

最佳的优先搜索是否最佳且完整?

我对最佳的优先搜索算法有一些疑问.我拥有的伪代码如下: 最佳首次搜索伪代码 第一个疑问:它完成了吗?我已经读过它不是因为它可以进入死胡同,但是我不知道什么时候会发生,因为如果算法选择的节点没有更多的邻居,它不会卡在其中,因为该节点已被删除从打开列表开始,在下一次迭代中,将处理打开列表的以下节点,并继续搜索. 第二个疑问:这是最优的吗?我以为,如果沿着搜索过程访问距离目标更近的节点,那么 ..