読者です 読者をやめる 読者になる 読者になる

AccessViolation Exception

仕事でもはんだづけ、家でもはんだづけ

c言語でLifeGameを再実装

技術ネタ c LifeGame AVR

ScalaでLifeGameをささっと実装 - AccessViolation Exception の再実装となります

関数型じゃないとどうなるのか


実はライフゲームを作ったのは先日のScalaが初めて。どうせ普通の言語でやるならc#だと味がない(VisualStudio立ち上げるのだるい)し、AVRでglcdとかで動かせたら面白いかと思ってひとまずcで再実装

まとめ


  • Mapが無いため配列の境界チェックがいる
  • 数を数える、長さを求めるときに変数を置かなければならない*1
  • 2次元配列を仮引数で受け取るときに uint8_t *world[]にしてて事故ってた
  • 組み込み向けに線形合同法で適当に乱数を作った。

やはりcで書いたほうが早いのはひしひしと感じられる。組み込みじゃなくてテンプレートメタプログラミングとかでScala風に記述すればどれだけ早いかは気になるところ。

lifegameをavr向けに再実装

*1:比較的状態に依存しにくいコードになっている気はする。