Новая "Жизнь"
В самом начале семидесятых годов или чуть раньше в журнале "Наука и жизнь" появились переводы статей Гарднера о забавной игре - имитации развития клеточных структур.
Называлась эта игра - "Жизнь".
Впрочем, выигрывать в эту игру было нельзя, а можно только играть, отыскивая забавные комбинации.
"Игрой" это занятие называлось, видимо, потому, что никакой его практической ценности обнаружить не удалось.
Да и "игрок" был нужен больше для перестроения фишек, чем для определения результатов.
Правила игры были крайне просты, но никаких рекомендаций по начальному расположению фишек не существовало.
Насколько мне известно, их так и не появилось.
В том смысле, что никаких глобальных закономерностей выявлено не было.
То есть до сих пор невозможно сказать, что надо поставить, например, такую-то и такую-то начальные фигуры, чтобы получить, в конце концов, то-то и то-то.
Все продолжает существовать в режиме "научного тыка".
Любопытно, однако, что развитие вычислительной техники, при котором можно рассмотреть значительно больше начальных вариантов и в тысячи раз более длинные циклы преобразований, не только не дало никакого прогресса в изучении закономерностей, но постепенно привело к полному угасанию интереса к игре.
Программки-игрушки "Жизнь" в Сети еще можно найти, но публикаций об игре практически нет.
Мне удалось найти только одну, бог весть насколько старую, и я дублирую ее здесь, чтобы она не потерялась окончательно.
Кто хочет, может почитать более внимательно.
Примерно тогда же (то есть в начале семидесятых) или несколько позже я прочитал о возможности использовать шестигранное поле вместо квадратного.
Идея показалась мне вполне здравой, поскольку окружение каждой шестигранной ячейки примыкает к ней абсолютно равномерно по сравнению с квадратным полем, где четыре ячейки из восьми примыкают к центральной через грани, а четыре - через углы...
...Но, как водится, все время были какие-то дела, и я забыл не только про "шестигранную жизнь", но даже и про ее классический вариант.
И вот теперь, спустя каких-то неполных сорок лет, в приступе временного обострения памяти, я вспомнил всю эту древнюю историю, и решил воплотить ее в бронзе.
То есть - в программе
Но сначала вспомним классические правила.
Выживание.
Каждая фишка, у которой имеются две или три соседние фишки, выживает и переходит в следующее поколение;
Гибель.
Каждая фишка, у которой оказывается больше трех соседей, погибает, т. е. исчезает с поля, из-за перенаселенности.
Каждая фишка, вокруг которой свободны все соседние клетки или же занята только одна клетка, погибает от одиночества;
Рождение.
Если число фишек, с которыми граничит какая-нибудь пустая клетка, в точности равно трем (не больше и не меньше), то на этой клетке происходит рождение нового "организма", т. е. в следующий ход эта клетка становится занятой.
Важно понять, что гибель и рождение всех "организмов" происходят одновременно. Вместе взятые, они образуют одно поколение или, как мы будем говорить, один "ход" (или один цикл) в эволюции начальной конфигурации.
Первые же опыты на шестигранном поле показали, что правила классического прямоугольного поля для него не подходят.
Начальные клеточные колонии категорически не желали развиваться, а в большинстве случаев просто исчезали уже на третьем-пятом цикле.
В общем-то, понятно почему: количество соседей у каждой клетки уменьшилось, поэтому и критерии выживаемости надо менять.
Поэтому сначала я уменьшил коэффициент перенаселенности с "трех и более соседей" до "двух и более".
Но это мало помогло. Даже наоборот: еще некоторые из начальных конфигураций из устойчивых превратились в вымирающие.
Тогда пришлось сократить количество "родителей" с трех до двух.
И дело пошло на лад...
В "шестигранную жизнь" можно поиграть, скачав вот это приложение размером 86016 байт...
Предлагаемые начальные фигуры создавались практически с потолка: некоторые из них исчезают, другие развиваются довольно долго.
Насколько долго - я не проверял.
Но у меня создалось впечатление, что если колония не погибает быстро, то она не погибает никогда.
Косвенным доказательством этой гипотезы служит тот факт, что ни одна структура не разрывается на части, а образующиеся время от времени в центре пустоты довольно быстро снова заполняются.
В процессе отладки программы удалось найти несколько простых циклических фигур: мигалка, бакен и чайка.
В определенной конфигурации две мигалки образуют циклический "гиперболоид инженера Гарина".
А "разреженный треугольник" дает красивую многоходовую циклическую конструкцию.
Кроме того, удалось обнаружить и самоходный агрегат типа "ракета".
|
|
|
|
|
| Мигалка | Бакен |
Чайка | Гиперболоид |
Треугольник | Ракета |
А симметричная фигура "полосатый шестигранник" выстреливает две полноценные "ракеты" и сохраняет колонию в центре.
Поэкспериментируйте.
Если у кого-нибудь появятся забавные результаты или любопытные соображения, напишите.
Дополнение.
Для развития "клеточного сообщества" можно выбрать одну из фиксированных фигур в режиме "Выбор фигуры" или нарисовать произвольный набор клеток на рабочем поле в режиме "Запись".
Начало развития определяется кнопкой "Пуск".
Начать развитие другой фигуры можно вызвать кнопками "Выбор фигуры" или "Запись" прямо в процессе развития предыдущей.
При достижении колонией краев поля или полном исчезновении колонии игра останавливается.
(Продолжение)
А также - За все - про все
Обложка
Предыдущий номер
Следующий номер
|