クロの制作日記

クロの制作日記

田舎の大学生がUnityとか機械学習関連の制作物をひたすらアップします。ブログで紹介したコード一覧https://github.com/kuroshum/blog_code

Unityでの迷路自動生成(棒倒し法)

はじめに

前回が前々回くらいの記事でテキストファイルからステージを作成するというプログラムを紹介しました。
kurora-shumpei.hatenablog.com

今回はこの記事の最後の方に書いたステージ(迷路)の自動生成のプログラムの紹介をしようと思います。

完成したらこんな感じになります。
f:id:kurora-shumpei:20180822132716g:plain


ゲームを再生するたびに15x15の迷路が作成されます。ちなみにこのサイズは変更可能にしています。




迷路自動生成の方法の種類

最初に色々迷路の自動生成について調べたところ、
 ・棒倒し法
 ・穴掘り法
 ・壁のばし法

この3つが有名みたいですね。

この3つの方法の詳細については以下の記事を確認してください。
algoful.com


この記事には各方法のシュミレーションが見れるので、私がここで説明するよりは百倍わかりやすいと思います。
私も今回のプログラムはこのサイトのものを大分参考にして作成しました。

とりあえず今回のプログラムではその中でも棒倒し法を使用して迷路を作成していきます。

流れとしては
 ① 生成したステージデータを保存する用のテキストファイルを用意
 ② 棒倒し法でステージデータを作成
 ③ ステージデータをもとにUnity上でステージを作成

こんな感じです。

①に関しては適当な場所に stage.txt を作成すれば良いだけなので説明は省略します。

以下がプログラムです。

リポジトリにスター付けてくれたら私の心が満たされます。

boutoshi.cs

github.com

プログラムの内容は大体コメントに書いてあるのでそれを参考にすればよいと思います。




最後に

このプログラム自体は半年くらい前に作成したものを記事にあげるのを忘れていたものですので、ちょっとプログラムの書き方が微妙な感じになっているかもしれませんがご容赦ください...。
もちろん問題なく動きはしますので、そこは大丈夫です!

時間があれば、棒倒し法以外での迷路生成をやってみようかと思っとります。あと、色々調べてたら、ローグライクゲームでのステージ自動生成の記事とかも見つけたのでその辺もやってみたいなーとも思ってます。
いつになるかはわからないですけどね...。