Scalaで迷路を作ってみる(穴掘り法)
※こちらに続き書きました Scalaっぽく迷路を作ってみる(穴掘り法) - AccessViolation Exception
また迷路を作った。前回よりも見栄えが良くなった。
方法
- 全面壁にする
- 基点を設定する
- 基点を壁から道にする
- 基点の4方から掘り進める箇所を基点にして再帰
わりと単純。
まとめ
- Mapでの存在チェックにより、迷路範囲外の境界チェックを省略
- Mapにはintersect関数(積集合)がないので一旦Listに落としてからintersect
- このやり方が正しいかはわからない
- 型パラメータの使い方はほぼ同じ、他にも境界条件を指定できる
- 自作したintersectを
map1 intersect map2
で呼ぶやり方がわからないlist1 filter(_ < 5)
はlist1 filter(x -> {x < 5})
でありlist1.filter(x -> {x < 5})
であることぐらいは理解した
少しずつ関数型言語とはってところが見えてきつつあるがそれに沿った実装は未だなせてない。基本構文でそこそこ扱えて書いてあることを深く理解できるようになってからやる
そろそろclass,traitとか使ってきちんと設計していこうか。基礎的なものは書けるようになった気がする
immutableである前提でのコーディングはまだ見ての通りできていない。ただ他の言語で書いてきた時より別の概念みたいなものがわかってきた程度