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