【发布时间】:2010-03-19 14:23:33
【问题描述】:
我们目前正在编写一个游戏(它是一种非常未知的语言:模 2), 我们遇到的问题如下:我们在一个 17 x 12 的网格中有一个迷宫(不是一个完美的迷宫)。计算机必须生成从起点 (9, 12) 到终点 (9, 1) 的路径。我找到了一些算法,但是当机器人必须返回时它们不起作用:
xxxxx
x
=> x
x
xxx
或:
xxxxx
x
xxxxxx x
x x
x x
xxxxxx x
=> x
xxxxxxxxx
我找到了第一种示例类型的解决方案,但无法解决第二种类型,我为第二种类型编写的解决方案会导致机器人陷入第一种情况。
代码很多,所以我会给出想法:
WHILE(未到达终点)DO { 尝试向右走,如果没有什么阻碍你:向右走 如果遇到障碍,尝试向上直到可以向右,如果向上不能再向下尝试,直到向右,(从第一次被阻止的地方开始),如果向下不能再尝试一步离开并用块填充您测试的空间。 }
这适用于第一种类型的问题......不适用于第二种问题。 现在可能是我开始错了,所以我愿意接受更好的算法或解决方案,特别是如何改进我的算法。
非常感谢!!
【问题讨论】: