虫が相手の虫を見れるようにしました。

色々なタイプに進化します。戦いを避ける虫、攻める虫、卵を一か所に産みまくる虫、後ろに下がる虫、など観察できました。落ち着く世界としては、みんな平和虫、凶暴な巨大虫1~2匹、超小さい虫たくさん状態、などありました。

虫の性質

1.一番近くにいる虫までの距離と方向が分かる。
2.一番近い虫が近くに来ると顔が黄色くなる。
3.黄色い状態では、行動のパターンを変えることができる。向く方向は、相手の方向が基準になる。
4.相手の赤い角が、紫の体や黄色い顔に当たると死ぬ。
5.2匹倒すと、卵を3つ産む。
6.寿命がくると、さなぎのような形になり、1~2個の卵になる。

虫の遺伝する性質は9個

1.体の大きさ
2.進むスピード
3,4.方向はランダムに変わるが、その範囲(下限と上限)
5.一番近い虫がどれくらい近くにいると黄色になるかを決める距離(距離閾値)
6.黄色モードの時のスピード
7,8.黄色モードの時の方向のランダムの範囲。相手方向を基準とした下限と上限。
9.卵の転がる距離

設定

・虫の寿命は、200~300ステップ。ランダムで決まる。
・卵が出る条件となっても、現時点で卵が15個以上あると出ない。
・速度はマイナスも取りうる。この場合バックする。
・体の大きさは、10%以下にはならないようにしている。
・卵を複数同時に産むときの遺伝子は、1つ目は自分のコピーで、2つ目は少し性質を変えたもの。

プログラム

虫はクローンでできていますが、自分が他の虫をやっつけたことを知ることや、近くの相手がどこにいるかなど、他のクローンの情報を知ることは、普通にはできません。
そこで、リスト変数を使って、そこに全ての虫の位置や状態を保存することにしました。