我們目前正在編寫一個遊戲(它的一個非常未知的語言: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 { 儘量向右走,如果沒有塊你:向右走 如果遇到塊,嘗試,直到你可以向右走,如果你不能再上去嘗試下去,直到你可以向右走,(從你第一次被阻止的地方開始),如果你不能再下去,試着走一步,填滿你的空間用塊測試。 }
這適用於第一類問題......不適用於第二類問題。 現在它可能是我開始錯了,所以我打開更好的算法或解決方案,特別是如何我可以改進我的算法。
非常感謝!