迷路ゲームデモ作成で使用したアルゴリズムの参考資料を一応メモとして残しておきます(自分のためにも ^^;)。
大きく分けて「迷路自動生成」と「経路探索」の2つあります。

●迷路生成
 これについては、私があらためて説明するよりも実際に参考にした既存サイトをご紹介しておきます。(^^;)
 メジャーな手法としては以下の2つの他に「壁延ばし法」というのもありますが、ほとんど「穴掘り法」と変わらないようです(若干面倒?)。今回使用しているのは「穴掘り法」です。
●経路探索
 前提として今回のように迷路の構造が分かっていてる状況での、最短ルートを探索する方法を紹介します。
 某サイトにあった情報を参考にしたのですが、リンクデッドになっているようなので、ここで簡単に説明をします。

(ちなみに迷路の構造が不明な状態での探索方法としては、有名な「左手法」の他「トレモー法」「求心法」「足立法」「ポテンシャル法」等ありますが、ここでは取り上げません)

■入■■■■■■■■■
■     ■   ■
■■■ ■ ■ ■ ■
■   ■   ■ ■
■ ■■■ ■■■ ■
■ ■   ■   ■
■■■ ■■■ ■■■
■ ■ ■ ■   ■
■ ■ ■ ■ ■ ■
■   ■   ■ ■
■■■■■■■■■出■

これが初期状態として、まずは準備として道の部分に番号を振ります。
番号の振り方の規則ですが、入り口から順番に「11221122・・・・」という風に、を2個づつ交互に振っていきます。
(別に1と2じゃなく0と1とかAとBとか使ってもいいですが ^^;
■入■■■■■■■■■
■11221■221■
■■■2■1■1■1■
■211■221■2■
■2■■■2■■■2■
■1■211■211■
■■■2■■■2■■■
■2■1■2■112■
■1■1■1■1■2■
■122■122■1■
■■■■■■■■■出■

迷路全体に振り終わるとこんな感じ。
経路を探索するには、今度は出口からスタートしてこの番号を「122112211・・・・」という具合に辿っていきます。
分岐点でどちらに進むかの判断は、単純に現地点の番号と違う番号になっている方向へ進めば良いという事で非常に明快です。
■入■■■■■■■■■
■○○○○○■○○○■
■■■ ■○■○■○■
■   ■○○○■○■
■ ■■■ ■■■○■
■ ■   ■○○○■
■■■ ■■■○■■■
■ ■ ■ ■○○○■
■ ■ ■ ■ ■○■
■   ■   ■○■
■■■■■■■■■出■

できあがり。


と思っていたんだけど……
冒頭で挙げた「ポテンシャル法」てやつを知った後で、こういう壁も出口の場所も全部判明してる状況なら、もっと素直で分かりやすく簡単な方法があるな…と今さらのように気付いた。(^^;)
つまり、

■入■■■■■■■■■
■1918171615■0f0e0d■
■■■18■14■10■0c■
■1b1a19■131211■0b■
■1c■■■14■■■0a■
■1d■171615■070809■
■■■18■■■06■■■
■1f■19■0b■050403■
■1e■1a■0a■06■02■
■1d1c1b■090807■01■
■■■■■■■■■出■

最初に出口から歩数を数えマーキングしながら入口に向かって各道を辿って行って、
入口まで到達したら止める。
■入■■■■■■■■■
■○○○○○■○○○■
■■■ ■○■○■○■
■   ■○○○■○■
■ ■■■ ■■■○■
■ ■   ■○○○■
■■■ ■■■○■■■
■ ■ ■ ■○○○■
■ ■ ■ ■ ■○■
■   ■   ■○■
■■■■■■■■■出■

後は入口から逆にマーキングしておいた歩数が減るように道を辿れば良い。
うわ、簡単…(^^;)

この方法だともしかしてループになった道があっても行けるかな?