回答:
迷路を作るさまざまな方法がたくさんあります。それらの膨大なリストとその説明がここにあります:http : //www.astrolog.org/labyrnth/algrithm.htm
「完璧」で説明したものを使用したと思います。
私は、クラスカルのアルゴリズムが作成するきつく巻かれた迷路を好みます。
Kruskalのアルゴリズムの標準的な記述は、データ構造の選択に関するしゃれに頼りながら、グラフ内の位置と位置グループを区別できず、初心者を混乱させる記述のあいまいさを招くため、不適切です。したがって、私はクラスカルの用語を拒否します。
次の用語を使用します。
そして、それらから、私たちは得る:
ウィキペディアには、迷路生成に関する優れたリソースがあります。私はランダム化されたプリムアルゴリズムを使用して素晴らしい結果を得ました。除算アルゴリズムはおもしろそうに見えますが、使用したことはありません。
プリムが機能しているウィキペディアの例を次に示します。
1つの簡単な方法は、北の壁と西の壁のリストを作成してから、それらを並べ替えることです。各部屋に番号を付けます。次に、2つの部屋に同じ番号がない限り、リストの壁の1つを爆破し、同じ番号を持つ他のすべての部屋に番号の1つを伝播します。壁がなくなるまで続けてください。これは、長方形の迷路、または実際に「潜在的に接続された部屋」のリストを提供できる他の迷路で機能します。さらに、プログラミングは非常に簡単です。
また、ローグライク開発で使用されるアルゴリズムのいくつかも見ていきます。Rogue Basinには優れた開始リソースがあります
ここに良い実行があります:https : //journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/
基本的な手順は次のとおりです。
ここにコード:https : //github.com/munificent/hauberk/blob/db360d9efa714efb6d937c31953ef849c7394a39/lib/src/content/dungeon.dart
あなたは私がどちらを使用したか尋ねたので、私はそれに必ず答えます。Rootbeer Gamesの迷路ゲームでRecursive Backtracker Algorithmを使用しました。
これは、アルゴリズムを使用した証拠です。これを私の作品の広告として見ないでください。