2

私は、左手の法則を使用して迷路を横断する必要があるプロジェクトに取り組んでおり、プログラムが遭遇する交差点に基づいて、グラフに接続するノードを作成する必要があり、それから最短経路を決定します。目標は、プログラムが迷路を通過してからプログラムを終了し、グラフを含むファイルから読み取り、ゴールまでの最短経路を決定することです。私がやったことは、左手の法則を使用して迷路を横断できることです。私が考えているのは、交差点を見つけたときにノードを作成し、その後プログラムが移動するたびにそのパスのコストを1ずつ増やすことです。余談ですが、ダイクストラのアルゴリズムを使用する場合、隣接行列が必要ですか?

4

1 に答える 1

2

次のようなものを試してみてください。うまくいくはずです:

0 - ロケーション オブジェクトの空の「ソリューション パス」スタックを作成します。

1 - 現在の位置が迷路の出口の場合、「ソリューション パス」スタックを返します。

2 - 前の壁?左に曲がって 2 を繰り返します。それ以外の場合は 3 に進みます。

3 - 現在の位置が「ソリューション パス」スタックの一番上にある場合、
       スタックからポップする
       それ以外の場合はスタックにプッシュします

4 - 前進します。

スタックの一番上で現在の位置を確認する場合、最後の要素が直前の位置になるため、最後の要素の直前の要素を確認する必要がある場合があります。

于 2010-07-27T04:16:23.230 に答える