Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

ライフゲーム

Rubyでライフゲームを作ってみる」を見ると楽しそうでしたので、enchant.jsの練習を兼ねて作ってみました。
JavaScript, enchant.jsともあまり得意ではないので、まずいところがあると思います。こんな風に書いた方がいいなど、アドバイスがありましたら、コメントお願いします。
自分で思いつくことろは、

Cellクラスの中で、Surfaceオブジェクトを80x80の640個生成しているところがありますが、Surfaceは黒と白の2種類あればよく、2つだけ生成して使いまわしたかったのですが、書き方が分かりませんでした。

アルゴリズムは、以下を参考にしています。

誕生
死んでいるセルに隣接する生きたセルがちょうど3つあれば、次の世代が誕生する。
生存
生きているセルに隣接する生きたセルが2つか3つならば、次の世代でも生存する。
過疎
生きているセルに隣接する生きたセルが1つ以下ならば、過疎により死滅する。
過密
生きているセルに隣接する生きたセルが4つ以上ならば、過密により死滅する。

実行してみる!

game.js