具有“方向依赖”障碍的寻路算法?

时间:2011-10-25 23:37:42

标签: path-finding

我遇到了以下问题。我正在编写一个游戏,它将使用寻路算法来确定如何为房间和隧道迷宫制作隧道。但是我需要一种能够找到障碍路线的路径的算法,其中方向是相关的。即水平穿过障碍物的路径可能没问题,而垂直移动的路径可能没有。

图解示例:

. = free space
X = path
| = vertical-blocking obstacle
a = start point
b = end point

如果我们有

.....
a.|.b
.....

然后我们应该得到像

这样的路径
.....
XXXXX
.....

但如果我们有

..a..
..|..
..b..

然后我们应该得到像

这样的路径
..XX.
..|X.
..XX.

什么样的算法可以做到这一点?可以修改“A *”来做到这一点吗?

1 个答案:

答案 0 :(得分:1)

A *将解决问题无需修改

您正在考虑在网格上进行路径查找,但(至少在discrete work spaces中)该问题等同于在图表上进行规划。因此,如果您可以将网格转换为适当的图形,则任何完整的图形搜索都将成功解决此问题,并且任何最佳图形搜索都将提供您请求的计划(或等效成本的路径)。

然后挑战就是从网格中制定图表。您在上面提供的网格的无向图表将类似于:

Graph image