Время голодной смерти

Время голодной смерти акул было более или менее произвольно выбрано равным трем хрононам. Пронаблюдав работу моей относительно медленной программы в течение 15 минут, мы увидели, что наши усилия не пропали даром: численность популяций полностью восстановилась после некоторого спала вначале. Более того, геометрический порядок, хотя и не отсутствовал совсем, был скорее предположительным, чем вполне определенным. Косяки представляли собой бесформенные скопления с неровными краями, а в некоторых местах экрана акулы и рыбы были перемешаны почти случайно.

Я запустил программу на все послеполуденное время и занялся более важными делами, отрываясь время от времени, чтобы взглянуть на нее. Программа проработала всю ночь, и когда я зашел в свое учреждение после утренней лекции, то обнаружил, что акулы и рыбы все ещё продолжают свою цик

лическую жизнь. Это был настоящий Аква-Тор!

Программу АКВАТОР можно реализовать многими способами, но, пожалуй, самый простой из них основан на работе с рядом двумерных массивов. Я использую пять массивов — FISH, SHARKS, FISHMOVE, SHARKMOVE и STARVE. Эти массивы размером 32 на 14 хранят информацию о положении и возрасте рыб и акул. Более точно указывает наличие или отсутствие рыбы в узле с координатами. Если в узле рыбы нет, то элемент массива имеет значение — 1. В противном случае в нем записан возраст рыбы в хро- нонах. В массиве SHARKS точно в таком же виде хранится информация о положении и возрасте акул. В каждой позиции массива записано.

переместилась ли туда рыба в текущем цикле вычислений. Эта информация позволяет программе избежать повторного перемещения рыбы в течение одного хронона. Массив SHARKMOVE выполняет ту же функцию по отношению к акулам. Массив STARVE хранит время, когда каждая акула последний раз ела. Если в некоторой позиции нет акулы, то соответствующий элемент равен — 1.

Чтобы показать события на Аква- Торе, проще всего изобразить каждую строку массива строкой литер на экра

не дисплея: пробел в некоторой позиции означает, что она свободна, точка. Изображает рыбу, а нуль (0) — акулу. Несмотря на кажущуюся ограниченность такого способа, он очень информативен и удобен для наблюдения.

Начальная фаза программы АКВАТОР состоит в равномерном «рассеивании» по тороидальному океану требуемого количества рыб и акул. Затем программа циклически выполняет три описанные ниже части, или подпрограммы; каждый такой цикл занимает как раз один хронон.

 

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

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

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