Scalaで迷路を作ってみる(棒倒し法)
いつぞや迷路生成はやったがScalaを使えば簡潔にかつもっと高度なことができそうなのでやってみた。
後々作るいいアイデアもあるのでやってる所存。とにかくScalaに使われないようちまちまやってる
やりかた
こちらのサイト様を参考にしました 自動生成迷路
ようは等間隔で壁おいて4方向のどれかに一つ壁を生やすだけでゴール可能な迷路ができるということらしい
実装
- 配列では面白みが感じられないのでまたしてもMapでやる
- 等間隔の配置 倒した配置 外枠をMapの連結で合成する
- 倒す時の方向は適当に
- 引数リストの最後にはimplicitキーワードでScala側が自動で決定してくれる
- 当初はimplicit(w:Int,h:Int)だったが型が同じだと割りと衝突してダメらしい
- 引数リストの最後に一度だけ
- f()()(implicit)ということになる
- Mapからの取り出しでいちいちif(map.contains(/ key /)){}しなくてもいい
さっさと他の方法をやりつつ作りたいものを作るぜ
gist貼っつけときます Scalaで迷路生成(棒倒し)