ライフゲーム

ライフゲームの実装をしてみました。(ソース)
大急ぎで作ったので正直ソースはめちゃめちゃ汚いですorz
これはまだ、プロトタイプで初期配置はランダム配置しかないのですが、それなりに高速なのが作れました。*1
ただ眺めてても面白いですね〜。
1974年のTime誌が「ライフゲームの大群が数百万ドルの貴重なコンピュータ時間を食ってしまっている」と苦言を呈するほど人々が熱狂するのも納得できます。

次の作業は

  • 1セルあたり1ビットの配列(vectorとか)に変更
  • 初期配置をマウスクリックで入力できるようにする
  • セルオートマトンのシステムを簡単に作れるようなC++の抽象クラスを作成

あたりですね。特に最後は本題のニューラルネットワークの実装に必須なので急いで作らねば。

*1:画像には20万個程度のセルがあります。実際は80万個でプレーしたものの1/4部分なのですが、このサイズで私の環境では10世代/1秒くらいの速度で更新できました。