如何进行简单的 L 形寻路?

问题描述

这是一个示例图像:

enter image description here

顶部的蓝色方块是起始位置,底部的蓝色方块是目标位置。绿色路径是在两者之间找到的路径。

Astar 似乎不太适合这个,因为我不想要最短路径,而是 L 形路径。也就是说,最小边长应始终为 5,并且应尽量减少转弯。

我目前的想法是这样的,但我不确定它是否理想或是否真的可行:

  1. 直线移动 5 格
  2. 计算从当前位置到目标位置的向量
  3. 例如,如果方向主要是向南,则直接向南行驶。
  4. 直行 5 格后的每格,再次评估我们应该朝哪个方向前进。
  5. 如果我们决定改变方向,则在该方向继续至少 5 格,直到再次检查

然后在循环中几乎重复步骤 4 和 5,直到我们到达目标位置。

如果无法建立路径,寻路有时会失败,或者如果路径超过一定长度,则寻路失败是可以的。上面的方法是我想到的第一件事,但我不确定它是否理想,或者它是否可以工作而不会有时遇到无限循环条件,即路径因卡住而不断来回走动。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)