私たちは現在、ゲームをプログラミングしています (これはかなり未知の言語です: 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
最初の例のタイプの解決策を見つけましたが、2 番目のタイプは解決できず、2 番目のタイプの解決策を作成すると、ロボットが最初のタイプの状況でスタックしてしまいます。
それはたくさんのコードなので、私はアイデアを与えます:
WHILE (最終目的地に到達していない) DO { 障害物がない場合は右に進みます: 障害物に遭遇した場合は右に進みます, 右に行けるまで試してください. もう上がれない場合は右に行けるまで下ってみてください. (最初にブロックされた場所から始めて)、もう下に行けない場合は、左に 1 歩進んで、テストしたスペースをブロックで埋めます。}
これは、最初のタイプの問題では機能しますが、2 番目の問題では機能しません。今では、私が間違って始めた可能性があるので、特にアルゴリズムを改善する方法について、より良いアルゴリズムまたはソリューションを求めています。
どうもありがとう!!