2012-09-01 11 views
10

こんにちは私はランダムなパックマンの迷路を生成するためのアルゴリズムに取り組んできました。私はいくつかの記事を見てきましたが、論理を分解することはできませんでした。私は迷路アルゴリズムの深さの最初の検索を使用していると私はそれぞれの迷路symetricalを作るために迷路をミラーリングしています。私は死んだ終わりをきれいにするような問題に走っている。これは不可能な場合は誰もがランダムな迷路を生成する独自のロジックを持っている場合私はまた、別のアルゴリズムを試みるだろう。どんな助けもありがとうございます。ありがとうランダムなパックマンの迷路を作成するには

+0

「パクマン迷路」とはどういう意味ですか? –

+0

私は自分のパクマンクローンを作ろうとしています。この写真と同じような "パクマン迷路"を作りたいと思います。http://ryangenno.tripod.com/images/MSpacmaze4.gif私はこれをランダムに生成したいと思います –

+1

これは古い質問ですが、問題がある場合はこのサイトをチェックしてください。 http://www.contralogic.com/2d-pac-man-style-maze-generation/ – user1762507

答えて

2

私はランダムウォークではカバーされていない領域を埋める(0のn * n行列で、壁なしで)dfsでランダムウォークを行います壁)、これも未使用のスペースを引き起こす可能性がありますが、これは長い歩行を保証します。歩行のサイズを任意に設定できます(歩行サイズが(n^2)/ 2になったときなど)、歩行を止めることができます。

4

私は私の問題を解決し、共有したいと思っていました。まず最初に、上の行と最初の列と最後の列を壁の障害物に設定し、外壁を囲むように2番目の列、2番目の行と2番目の行にパスを設定します。また、私は迷路の50%しか作成していないので、私が完了したら迷路をコピーして両側が等しいようにします。それから私は、幽霊が出現する地域の壁に囲まれた中間のセクションを作成しました。次に、迷路のどの部分も、奥行き探索アルゴリズムを用いて経路を生成した。これが行われた後、私はパクマンの迷路で死んだ終わりがないことを知っています。私がしたことは、パックマンが旅行できる道の一部であるすべての細胞を調べることでした。いずれかのセルに境界セルが1つしかない場合は、それはデッドエンドです。それが行き詰まっている場合は、別のパスに接続できるかどうかを確認してください。デッドエンドを壁として設定していない場合は、もう一度迷路をチェックしてください。これらの手順を実行すると、典型的なパックマンの迷路に似た死んで終わりのないランダムな迷路ができます。

2

私は長年、C = 64でデッドエンドの深みと排除を使ってランダムなPacMan迷路ジェネレーターを作成しましたが、最近友人から再度挑戦を受けました。より良い方法を見つけました。 my site

本質的に、私は、各方向が開いているドア(トンネルがあるところ以外の境界で閉じている)を備えた部屋のグリッドを作成し、決してそこにないはずの規則に従ってランダムにドアを閉じることを開始する2つのドアが閉じられている場合、隣接する部屋の中に1つ以上の閉鎖されたドアがあり、第3のドアが閉鎖される。すべての潜在的なドアがルールによって閉じられたり開いたりするまで、これをランダムに続けてください。

ミラーリングはもう少し作業がありましたが、私は基本から始めて、ミラーリング、ゴーストハウスの位置、最小壁長(単一壁の迂回路なし)、最大壁の長さなどを考慮してルールを構築しました。

+0

明らかに、別のユーザーアカウントと[提案された編集](http:// stackoverflow)を使用して回答を更新しようとしました。 com/review/suggested-edits/1287465)は拒否されました。元のアカウントを使用しない理由 – bfavaretto

+0

リンクが死んでいる – Valdrinit

関連する問題