问题
我想写一个简单的1D RTS 游戏,并且有以下寻路问题:一维线很多,到处都是传送器,可以用来在线之间穿行,也可以在当前线内穿行。传送器是在线路之间旅行的唯一途径。什么算法或伪代码可以用来确定线 li1 上的位置 po1 到 li2 上的 po2 之间的最短路径?我们有一组传送器 T(每个都有一个 po 和 li),它们以零成本相互连接。
为什么不是 A* 或 Dijkstra 算法
这是因为我认为这些在 1D 中将是过度杀伤力。
澄清
- 这听起来可能有点二维,但不是因为你只能在一条线上向左或向右移动。
- 前往传送器是有成本的,但从一个传送器传送到另一个是没有成本的。看到这个 ascii 艺术:
...0....s..0 ......0.x......
在这里,从 start s 到 target x 的最短路径是
- 去正确的传送器
- 向下传送一条线(仅在此图中;实际上飞机是无序的)
- 并直接到达目标(最终成本 = 5)