ネコが動き終わったらりんごからの距離を計測します。「クローンされたとき」のブロックに続く以下の部分です。
「りんごからの距離を計測する」の中身は以下の通りです。
「『りんご』までの距離」で「りんご」スプライトまでの距離が得られるので、これを変数「りんごからの距離」に入れます。
もしネコが障害物にぶつかっていた場合は、りんごからの距離に「ペナルティ」に設定した値 10 を加えています。ネコが障害物にぶつかっているかどうかは、「障害物にぶつかっているか?」のリストの「ネコのID」番目に「はい」がセットされているかどうかでわかります。
そして、「距離のリスト」の「ネコのID」番目に、「りんごからの距離」の値を入れています。
こうして動き終わったそれぞれのネコのりんごからの距離が「距離のリスト」にどんどん入っていきます。
メインの処理に戻ります。
1世代あたりのネコ100匹のクローンがすべて動き終わり、「距離のリスト」の長さがネコの数 100 になったら、念のために2秒待ったあと、ネコ全体の平均距離を求めます。
「平均距離を求める」ブロックの内容は以下の通りです。
変数「総距離」に0をセットしておいて、i を 1 からネコの数の 100 まで変えていきながら、「距離のリスト」から次々ネコのりんごからの距離を取り出して加えていきます。最後に「総距離」を「ネコの数」で割って、その世代の平均距離を求め、変数「平均距離」にセットしています。
以上で本章の説明は終わりです。
最後に「りんご」スプライトのスクリプトを載せておきます。
スクリプトを開始したら、x座標 220、y座標 0 にりんごを配置し、大きさを 30% にしています。





