2012-02-29 13 views
2

私はJavaScriptでランダムな迷路ジェネレータを作成しようとしています。Javascript - ランダム化されたプリムのアルゴリズムproblemRandomizedプリムのアルゴリズム

あり、すでにそこに例を作業することができるが、私はこの1つを自分で解決しようとしている(だけでなく、可能な限り)

私がいる問題は、私のスクリプトは、だけにして数ブロックに対して実行されます停止します。

私は、このアルゴリズムは、プリム法のランダム化されたバージョンである

問題は、私は(このWikipediaのページhttp://en.wikipedia.org/wiki/Maze_generation_algorithmから)次てるの説明の私の理解であると思います。

  1. グリッドから始まります。

  2. セルを選択して、それを迷路の一部としてマークします。セルの壁を壁リストに追加します。

  3. 壁がリストにありますが:

    1. は、リストからランダムに壁を選択してください。 反対側のセルがまだ迷路になっていない場合:

      1. は壁の通路作り、迷路の一環として反対側のセルをマーク。

      2. セルの隣接する壁を壁リストに追加します。

    2. 反対側のセルがすでにリストから壁を削除し、迷路にあった場合。

私は私の問題ハイ点灯きたよう反対側でこれの一部です。これは壁リストにある隣接するセルを意味しますか?それとも別の意味ですか?

私は、隣接するセルでそれを試してみたし、それだけで自分自身をブロックしてしまう。

任意のアイデアのをいただければ幸いです。

私はそれが完了したら私はコードを掲載するように働くことができる場合。私が言ったのと同じように、完全な解決策を手に入れる前に、私は自分で遠くに行きたいと思っています。

+0

宿題の場合は、そのようにタグ付けしてください。 – j08691

+1

ハハハはまったくありません!私はa * pathfindingアルゴリズムで遊んでいました。私はそれを迷路にしたいと思っていました! – james

答えて

0

壁は、2つの異なるセル間の接続を表します。壁リストに壁を追加すると、それはあなたが迷路の一部になるセルを訪れているからです。反対のものを参照すると、その壁の「後ろ」の壁を意味します。その壁はそこにはなかった。

+0

ああこれは私が落ちているところかもしれないと思う。私の壁はちょうど別のブロックです。このアルゴリズムを適用することはできますか? – james

+0

さて、このアルゴリズムでは実装の詳細は指定されていないので、セルや壁を表現する方法とそれを扱う方法と一致する限り、問題はないはずです。 – Win32

+0

hmmmおそらくこれを見ていますすべて間違っている..私は10×10の正方形を持っていると私は見ている..私はその広場のブロックを選択し、私の出発ブロックとして設定します。私はそれを囲む4ブロックを私の壁リストに追加し、アルゴリズムを適用します。私が見たすべての事例から、そして私があなたの言うことを推測するものから...これは間違っていますか? – james