こんばんは
電子工作
ハードは出来上がったのでそれを動かすプログラムの番だが、構想するばかりでプログラミングは少しも進んでない
仕事でもそうだが、大体プログラミングというのは自分の場合は構想8割みたいなところがあり、新しいシステムやプログラムは着手までに時間がかかる
大まかな構想としてはライフの生存する空間として1,000x1,000の配列を準備して、それぞれの要素としてさらに配列(Now,Next)を格納する
NowとNextは真偽値でライフが生存ならTrue死滅ならFalseとなる
チックタックとゼネレーションを進めてライフゲームのルールに従ってNowからNextを生成する
生成した次の状態NextをNowに転送し、Nextはクリアする
NowをドットマトリクスLEDに表示するが、16x16ドットしかないので1,000x1,000の配列の中の一部を表示するようにする
そのほか細かいことは作りながら考えることになる
この作り方は言語の一番原始的な使い方で、よく考えればもっと効率的な考え方があるかもしれないが、まあそれは一度やってみてから後から考え直してもいい
ライフゲームのルールとは
- 生物の誕生 --- 死んでいるセルの周囲に、生きているセルが3つあれば、次の世代に生物が誕生する
- 生物が継続して生存 --- 生きているセルの周囲に、生きているセルが2つ以上3つ以下あれば、次の世代に生物は継続して生存する
- 過疎状態 --- 周囲に生きているセルが1つ以下しかなければ、次の世代には死滅する
- 過密状態 --- 生きているセルの周囲に、生きているセルが4つ以上あれば、過密により死滅する
こんな感じでチックタックとゼネレーションが進むにつれてドットがついたり消えたりする
プログラム構想と並行してこんなことも検討している
2色表示のドットマトリクスLEDを今回購入してみたが、規格の違いでどうやって基盤につけるか悩んでいる
左は前回のお天気ボードや今回のライフゲームで使っている中国から購入の1588BSと言う型番のもので5個388円、右が2色表示のできる秋月電子の1個140円のもの(中国製は同じ)
見た目が小さいだけかと思うとそうではなく、ピンの間隔が少し違う
左のほうはすべてのピンが2.54mm単位で並んでいるので普通のユニバーサル基盤にスッポリとおさまる
右のほうは2列あるピンの各列のピン同士の間隔は2.54mmで同じだが、ピンの列の間隔が24mmとなっていて2.54mm間隔のユニバーサル基盤にはそのままでは収まらない
秋月のHPでよく探してみると2.54mmx2.0mmのユニバーサル基盤があった
緑の方がいつも使っている縦横が2.54mm間隔のもので、白いほうは2.54mmx2.0mmと特殊な間隔になっている
これで大丈夫と思って購入したが、実際に合わせてみると微妙に隙間が空いたりそう簡単に思い通りにはならない
1.27mm間隔の基盤もあるようなのでそれらを検討したりいろいろと工夫が必要なようだ
何れにしてもLEDは何らかの基盤上に固定しないと宙ぶらりんではいけないのでかなりの工夫が必要になりそうだ
まあ、これはまだ先の話なのでぼちぼち考えることにしよう
今日のカープ
勝ちました
2回に先発大瀬良の調子がイマイチで4点も取られてしまったが、3回からはいつもの大瀬良に戻り以後は無失点
カープの方は5回に5点取って逆転し、8回に1点9回にはまた5点取って試合を決定づけた
巨人もDeNAも買ったので順位とゲーム差に変化はなし
カープが勝って巨人かDeNAが負けると順位が変わって面白くなるのだが、どのチームも負けたくはない
豪華な選手をずらりと並べた巨人か、ラミレスマジックのDeNAか、昨年の覇者カープか
※コメント投稿者のブログIDはブログ作成者のみに通知されます