セルオートマトンを作ってみた - 2019 4/ 7
人工生命
セル・オートマトン
python
python2.7
pygame
記事のカテゴリが毎回違いすぎる。
RPGを放置して何をしてるんだという感じだがセルオートマトン(もどき)を作った。
セルオートマトンってなんだよ
Wikipediaへどうぞ。
ライフゲームの方が有名かもしれないが、
ライフゲームはセルオートマトンの一例だ。
ちゃんとしたセルオートマトンだと
ムーア近傍とかノイマン近傍とか数学的にルールが決められてるけど、
それを勉強するのも大変だったのでオリジナルでルールを作った。
環境はmac、python2.7でpygameを使った。
今回のルール
- 色は黒・青・赤・緑・黄・マゼンタ・白・シアンの8つ
- セルは周りの8セルの色の個数によって状態が変わる
- つまり色の数が大事で並びは関係ない
- 黒は青が1個以上、緑が2以上だと青になる
- 赤は赤が1個以下だと黒になる
- 以下略
最初は全部書こうかと思ったけど
pythonで 調整しながら作ったから日本語に書き下すのが大変。
こんな感じなのだけれど、
一つだけ特別ルールがある。
それはシアンのセルだけは独自のルールを持つということ。
例えば、初期配置のシアンのセルは
「赤が4以下だったら自分の周りに赤・青・赤・赤・赤・赤・青・赤のように置く」
など自分の周りにセルを置くことができる。
そしてある条件を満たすとシアンセルは増殖し、
増殖するたびに独自のルールは変わる可能性がある。
つまり、遺伝子と突然変異の概念を組み込んだ。
結果
こうなった
シアンのパターンが少しランダムになっていることがわかる。
あまり生物っぽくないな...。
遺伝子の概念を組み込んだところで動きは大して変わらないかもしれない。
突然変異のパターンを変えたりして少し遊んでみたい。
何気にYoutubeに動画をあげるのが一番大変だった。