質問
したいと言う簡単な迷路に、N Mグリッド、ひとつの経路を通じて、良い死者を出した端が見える"権利"すなわち人のようになってもなく多少の小さな時代は終わりましたが、すべてのこと).が知られてないという。
解決
から http://www.astrolog.org/labyrnth/algrithm.htm
再帰backtracker:このと言えば、関心があるの再帰的backtracker解決方法を下記に示す、スタックのサイズの迷路装置を使用した。き彫りにすると欲張りですが、常に彫り込unmade部の場合には、現在の細胞です。各時間を移動する新しい細胞を押し出し元細胞のスタックです。がない場合はunmade細胞の現在の位置、ポップスタックの前の位置にします。迷路の場合はごpopべてのスタックです。このアルゴリズムの結果迷路と高の"川"の要因としては、できる限り、少ないが,もっと長い時代は終わりましたが、通常非常に長くtwistyます。ですばらしいスタッフがツのアルゴリズムは高速に行います。再帰後退動作しないと壁の加算器かう傾向にある結果、溶液中でのパスの外側の縁は、全体の迷路の境界によるシングル。
して10%の時代は終わりましたが
の一例で迷路による方法です。
他のヒント
写簡単な解決策が割り当てるランダムウェイトのグラフのエッジを適用し Kruskalのアルゴリズム 示最小限に広がる。
最高の議論はこれまで培ってきた迷路の生成アルゴリズム http://www.jamisbuck.org/presentations/rubyconf2011/index.html (たHNカップルです。.
不思議な縁で、若干の変更の標準的な'ルールからランダムに設定 Conwayゲームの生命 る生ショーウィンドウに置か迷路の!
(記憶してないの正確な原則ですが、非常に簡単な改造の問題が指摘されている'densifyの人口の細胞に...)
私が好きな方は使Kruskalのアルゴリズムがランダムに選択したエッジの除去、重量の選択に基づく種類のエッジで接続されます。
変化させることで重量の異なる縁の種類、形を生成することができます迷路の特性や"個性".マ例はこちら
一つの方法を迷路のランダム化版ツのアルゴリズムです。
タグふれます。ピ細胞のマークとしては、迷路装置を使用した。追加の壁細胞において、壁一覧です。がありますが壁面にリスト:
ピランダムな壁をクリックします。場合には反対側なの迷路を使って
(i)の壁、通路とマークの細胞とは反対側の一部としてある。
(ii)追加の隣の壁は、細胞の壁一覧です。
場合には反対側では迷路の壁をクリックします。
より理解をクリック こちらの
こちらは、DFSアルゴリズム記述としての擬似コード:
をCellStack(ⅳ)にリストのセルの場所
設定TotalCells=細胞がグリッド
選細胞のランダムでCurrentCell
設定VisitedCells=1
がVisitedCells < TotalCells
すべての近隣のCurrentCellすべての壁をそのままに
コンテンツはただ見つかり
つランダム
ノックダウンの壁の間にでCurrentCell
押しCurrentCellのCellStack
の新しい細胞CurrentCell
追加1VisitedCells
else
ポップな最新の細胞に入力のCellStack
でCurrentCell
endIf
endWhile