c言語でLifeGameを再実装
※ScalaでLifeGameをささっと実装 - AccessViolation Exception の再実装となります
関数型じゃないとどうなるのか
実はライフゲームを作ったのは先日のScalaが初めて。どうせ普通の言語でやるならc#だと味がない(VisualStudio立ち上げるのだるい)し、AVRでglcdとかで動かせたら面白いかと思ってひとまずcで再実装
まとめ
- Mapが無いため配列の境界チェックがいる
- 数を数える、長さを求めるときに変数を置かなければならない*1
- 2次元配列を仮引数で受け取るときに uint8_t *world[]にしてて事故ってた
- 組み込み向けに線形合同法で適当に乱数を作った。
やはりcで書いたほうが早いのはひしひしと感じられる。組み込みじゃなくてテンプレートメタプログラミングとかでScala風に記述すればどれだけ早いかは気になるところ。
*1:比較的状態に依存しにくいコードになっている気はする。