「Rubyでライフゲームを作ってみる」を見ると楽しそうでしたので、enchant.jsの練習を兼ねて作ってみました。
JavaScript, enchant.jsともあまり得意ではないので、まずいところがあると思います。こんな風に書いた方がいいなど、アドバイスがありましたら、コメントお願いします。
自分で思いつくことろは、
Cellクラスの中で、Surfaceオブジェクトを80x80の640個生成しているところがありますが、Surfaceは黒と白の2種類あればよく、2つだけ生成して使いまわしたかったのですが、書き方が分かりませんでした。
アルゴリズムは、以下を参考にしています。
- 誕生
- 死んでいるセルに隣接する生きたセルがちょうど3つあれば、次の世代が誕生する。
- 生存
- 生きているセルに隣接する生きたセルが2つか3つならば、次の世代でも生存する。
- 過疎
- 生きているセルに隣接する生きたセルが1つ以下ならば、過疎により死滅する。
- 過密
- 生きているセルに隣接する生きたセルが4つ以上ならば、過密により死滅する。