我正在寻找名称(如果此类算法已存在)或帮助构建它,因为我不知道从哪里开始。
首先,看看两个场景 map http://cap.ring0.cc/2d9b8cb8ce1666bd5283ae1df34b9e25.png
什么是:
它是如何运作的:
1
,然后访问2
,3
,依此类推,直至再次到达起点问题:
假设僵尸现在位于红色箭头指示的位置之一。从这一点来说,他必须停止他的道路并找到回家的最短路。问题是我不能给它绿色块的X,Y坐标,因为它太过分了。因此,如果机器人现在位于阻拦X
,它应该移动到航点16
并继续正常,如果它位于Y
位置,它应该移动到航路点17
(! !),从位置Z开始,它应该移动到WP 2
然后转移到1
(实际上是倒退,与场景1不同)。
限制
我定义路径文件的方式如下:
<!-- forward -->
<WP name="3" />
<point x=1 y=1 />
<WP name="4" />
<point x=1 y=4 />
<WP name="5" />
<point x=1 y=9 />
<WP name="6" />
<point x=4 y=9 />
<WP name="7" />
<point x=7 y=9 />
<!-- cur pos 7 9 -->
<!-- backward -->
<WP name="8" />
<point x=4 y=9 />
<WP name="9" />
<point x=1 y=9 />
<WP name="10" />
<point x=1 y=4 />
<WP name="11 />
<point x=1 y=1 />
<WP name="7" />
我可用的函数是:getMyPosition()
,goToWp(name)
- 使用此函数我在WP中的mapfile中插入我的“游标”,名称我作为参数传递,之后它继续作为参数在mapfile中,向下。
最终的解决方案可以在每个可能的路径中写入mapfile但是对于大型地图来说需要很长时间:)
注意事项:
n!
这是一个很长的问题,我希望我能以某种方式解释它,以便你能理解这个想法。谢谢你的时间。