我们目前正在编写一个游戏(它是一种非常未知的语言:modula 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 { 尝试向右走,如果没有任何阻碍:如果遇到障碍,请向右走,直到可以向右走,如果您不能再向上走,请尝试向下走,直到可以向右走, (从你第一次被阻挡的地方开始),如果你不能再下去了,试着往左走一步,用方块填充你测试的空间。}
这适用于第一种类型的问题......不适用于第二种问题。现在可能是我开始错了,所以我愿意接受更好的算法或解决方案,特别是如何改进我的算法。
非常感谢!!