読者です 読者をやめる 読者になる 読者になる

AccessViolation Exception

仕事でもはんだづけ、家でもはんだづけ

Scalaで迷路を作ってみる(棒倒し法)

技術ネタ Scala 迷路

いつぞや迷路生成はやったがScalaを使えば簡潔にかつもっと高度なことができそうなのでやってみた。

後々作るいいアイデアもあるのでやってる所存。とにかくScalaに使われないようちまちまやってる

やりかた


こちらのサイト様を参考にしました 自動生成迷路

ようは等間隔で壁おいて4方向のどれかに一つ壁を生やすだけでゴール可能な迷路ができるということらしい

実装


  • 配列では面白みが感じられないのでまたしてもMapでやる
  • 等間隔の配置 倒した配置 外枠をMapの連結で合成する
  • 倒す時の方向は適当に
  • 引数リストの最後にはimplicitキーワードでScala側が自動で決定してくれる
    • 当初はimplicit(w:Int,h:Int)だったが型が同じだと割りと衝突してダメらしい
    • 引数リストの最後に一度だけ
      • f()()(implicit)ということになる
  • Mapからの取り出しでいちいちif(map.contains(/ key /)){}しなくてもいい
    • 取り出せるならSome(n)だめならNoneが返るOption型
      • ヤダイケメン♡
    • (c#のDictionaryで言うところのdic.exists(/ key /)と同じみたい)

さっさと他の方法をやりつつ作りたいものを作るぜ

gist貼っつけときます Scalaで迷路生成(棒倒し)