こんにちは、まなゲー池田です。
先日の「1分でつくる!Scratchで拡散シミュレーション」のプログラムをちょっといじって、植物、草食動物・肉食動物が登場する、生態系シムっぽいものができそうだったので、作ってみましたよ。
今回はまず、植物と草食動物を作っていきます。
植物をつくる
こちらが植物の中身、ランダムな場所に種が撒かれて、時間とともに成長(サイズ拡大)していき、草食動物が接触すると縮小していきます(食べられた)。食べ尽くされるといったん消滅しますが、どこからか種が運ばれて復活するイメージで、90秒後に同じ場所から再生し始めます。
草食動物を作る
こちらは草食動物。動物には体力プロパティ(hp)があり、時間とともに体力が減っていきます(空腹から飢餓へ向かう)。体力は植物に接触することで回復・増大し、一定まで増えると分裂して増えます(草食は草食でも単細胞生物っぽいですね。なお、個体のサイズ(=体力)は分裂時に一定減少します。)。肉食動物に接触する(襲われる・食べられる)ことで、急激な体力低下が起こりますが、今回はまだ肉食動物を実装しませんので、敵は空腹だけですね。
動かしてみる
Scratchの操作さえ慣れていれば、ここまで数分というところでしょうか。では早速動かしてみましょう。旗アイコンをクリックしてプログラムを走らせると。
こんな感じで、ステージ上に植物(緑)が出現し、ジワジワ成長し始めます。
しばらくのちに、草食動物(紫)が出現し、ステージをうろうろし始めます。
たくさんある植物をモリモリ食べて、ガンガン増えていきます(擬音多め)
そうこうするうちに、Scratchのスプライト(画像オブジェクト)表示上限まで来てしまいました。この制限は(仕方ないんですが)Scratchでシミュレーション的なモノを作ろうとするときに何かと障害になる厄介な制限です。ずば抜けた手軽さの代償ですね。
あっという間に、植物は食い尽くされ、ステージのあちこちで飢餓が発生します。動物の体力は見た目の大きさとして視認できるようになっていますので、小さいモノほど空腹で体力が低下しており、点のようになってしまっているものは、餓死寸前ということになります。
一定時間ごとに植物は復活しますが、草食動物の個体数が多いうちは、ろくに成長しないうちに食べ尽くされてしまい。ステージ中に飢餓が蔓延しているのが見て取れます。続々と餓死が起こり、個体数が激減していきます。
最盛期に250以上まで増えた個体数が、一気に30代まで減ってしまいました。ここでようやく、植物の復活・成長が追いつくようになり、動物の個体数も少しずつ回復し始めます。
その後は、だいたい個体数が100ぐらいまで行くと、食料が不足して個体数が減り始め、60前後まで減るとまた増加に転じるというのを繰り返すようになり、その範囲で安定してきます。
極めて単純な画面構成ですが、意外と子どもウケはいいようで「あ、ここが危ない。こっちのグループはもうだめだ」とか「こっちはめっちゃ増えてきた!」なんて言いながら、楽しげに眺めていました。
実際のプログラムはこちらで確認できます。