Движение и размножение рыб

Для каждой рыбы в массиве FISH программа строит список соседних свободных позиций и перемешает ее в одну, случайно выбранную из них. Это означает, что в массив FISH заносится

—I в старой позиции и текущий возраст рыбы в ее новой позиции. Массив FISHMOVE изменяется в соответствии с приведенным выше описанием. Если возраст рыбы равен /breed, то программа помешает новую рыбу в старую позицию и приписывает обеим рыбам возраст 0. Новая рыба также регистрируется в FISHMOVE. Если все соседние позиции заняты, то рыба не движется и не размножается. Для каждой акулы в массиве SHARKS программа строит список соседних позиций, содержащих рыб (если такие позиции есть). Акула случайно выбирает одну из них, перемещается туда и съедает рыбу. Это означает, что программа изменяет массивы SHARKS и SHARKMOVE так же, как это делалось для массивов FISH и FISHMOVE, но не только для них. В рассматриваемую позицию массива FISH следует занести

—1, а в ту же позицию массива STARVE — число 0. Если в соседних узлах нет рыб, то акула движется так же, как рыба. Если возраст акулы достигает sbreed, то новая акула появляется на свет точно таким же способом, как новая рыба.

Программа просматривает оба массива FISH и SHARKS. Она выводит на экран точку для каждой обнаруженной рыбы и нуль для каждой акулы. Отображение можно выполнять полностью, как описано, или же можно разбить это действие на две части, одна из которых будет выполняться после перемещения рыб, другая — после перемещения акул. Чтобы выполнить первоначальное заселение океана, программисту надо записать цикл, в котором nftsh раз будет порождаться пара случайных чисел. Эти числа масштабируются по горизонтальному и вертикальному размерам желаемого океана. Таким образом, числа задают случайную позицию, в которую программа помещает рыбу, отмечая ее в массиве FISH и присваивая ей случайный возраст от 0 до /breed. Аналогично расселяются акулы. В обоих случаях проверяется, не занята ли уже выбранная позиция. Присваивание акулам и рыбам случайного возраста ведет к тому, что они потом будут размножаться в случайные моменты времени, что вполне естественно. Без этой меры вы увидели бы, что число акул и рыб вдруг удвоилось бы — крайне удивительная и неестественная картина.

 

0 Коментариев

Вы можете быть первым =)

Оставить коментарий