人間、生きていると、いつどんなトラブルに見舞われるかわかりません。
その中でも、「明日までに十階層分のダンジョンを作らないといけないのに時間がないよー!」というトラブルは、比較的多くの人が日常的に直面する部類のものだと言えるでしょう。
言えますよね?
そういう時に、サッと参照できるような自動ダンジョン生成アルゴリズムは、人類誰もが夢見る未来のツールであると言えるでしょう。
言えますよね?
・
・
・
部屋数(少← →多)
・
・
・
というわけで、「こんなやり方でもランダムダンジョンって作れるんじゃないかな」という思いつきを形にしてみた成果を張りつけてみます。
扉の設置方法などがけっこうてきとうなので、入り組んだように見えても至極単純なツリー状です。任意の二地点を結ぶ道筋はひとつしかないというアレです。
リロードしたり「作り直す」を叩いたりすると新しい迷路が表示されます。
基本のコンセプトは、「ドロネー図を使った経路算出とかよくわかんないし考えたくない、そのへんを全部省略しながらソレっぽいものは作れないか」。また、ひとまずそれが動くことの検証が目的であったため、通路を使った部屋同士のリンクなども省いてあります。
具体的な手順は、
1:「ランダムに作った部屋をマップの真ん中に全部置く」
2:「ひとつめの部屋を固定する」
3:「ふたつめの部屋をランダムな方向に1マスずつずらしていき、最初の部屋と重なる部分がなくなったところで固定する。この時、ずらす動作のひとつひとつは必ず水平または垂直に行い、一度に斜め移動はしないこと(扉が置けなくなります)」
4:「固定した部屋の壁の中から他の部屋に隣接している場所を探し、その中から選んだランダムなひとつに扉を開く」
5:「みっつめ以降の部屋に関しても同様にする」
ひとまずこれだけで、とりあえず上記くらいにはランダム迷路っぽいものに仕上がることが分かりました。
気の利いたアレンジの余地はたっぷりとある筈ですので、気の向いた方はぜひ試してみてください。
……はい、そうです。
たまには宣伝以外のことで更新をしてみたかっただけなんです……。