Математическая игра "Жизнь"

Описание

Игра "Жизнь" представляет собой один из простейших клеточных автоматов, т.е. систему (в данном случае программу), в которой колония фишек на поле изменяется по шагам в соответствии с определенными правилами. Правила "Жизни" были придуманы математиком Джоном Конуэем.

Мною были разработаны две программы, реализующие данную игру. Первая программа написана на языке Java в виде апплета. Вторая программа написана на языке JavaScript. Каждая программа расположена на отдельной странице по ссылке ниже (открываются в новом окне).

Игра "Жизнь" Java-апплет                            Игра "Жизнь" JavaScript-версия

Правила

Игра происходит на бесконечном двумерном поле, состоящем из клеток квадратной формы. Каждая клетка имеет восемь соседей: четырех с общей стороной и четырех с общим углом.

Перед началом эволюции создается начальная колония фишек. Для этого на выбранные клетки поля ставятся фишки. Все фишки равнозначны и одинаковы. Начальная колония называется нулевым поколением.

Дальнейшая игра происходит по шагам. Каждый шаг состоит в том, что из n-го поколения в результате эволюции формируется (n+1)-е поколение. Для этого к каждой клетке поля применяются три правила:

  1. Гибель от одиночества: Если на клетке есть фишка, и на соседних клетках менее двух фишек, то фишка гибнет (снимается с поля).
  2. Гибель от перенаселения: Если на клетке есть фишка, и на соседних клетках более трех фишек, то фишка гибнет (снимается с поля).
  3. Рождение: Если на клетке нет фишки, и на соседних клетках ровно три фишки, то на клетке рождается фишка (ставится на поле).

Правила применяются одновременно ко всем клеткам, поэтому рождение или смерть фишек не влияет на применение правил к другим клеткам на том же шаге. После применения правил на поле образуется следующее поколение колонии.

Игра заканчивается в одном из следующих случаев:

  • Если в очередном поколении нет ни одной фишки (колония погибла);
  • Если очередное поколение совпадает с одним из предыдущих (колония превратилась в периодическую);
  • Частный случай предыдущего: очередное поколение совпадает с предыдущим (статическая колония).

Примеры колоний

Если колония совпадает с одной из предыдущих с точностью до сдвига (плоскопараллельного переноса), то говорят, что колония движется. Скорость движения на одну клетку в любом направлении за один шаг (скорость короля в шахматах) называется скоростью света.

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

Устойчивые колонии

Простейшие устойчивые колонии

Следующие три конфигурации могут быть растянуты на произвольную длину с сохранением устойчивости.

Корабли

Периодические колонии

Эти колонии при эволюции возвращаются в исходное состояние через определенное количество шагов.

Периодические колонии

Космические корабли

Это движущиеся колонии – через определенный период они принимают исходную форму, но со сдвигом относительно начального положения.

Космические корабли

Глайдер скользит вправо вниз со скоростью 1/4 света, а остальные летят горизонтально вправо со скоростью 1/2 света. Обратите внимание на "искры" появляющиеся в процессе движения длинных кораблей. Если еще больше удлинить корабль, эти искры будут мешать его полету.

Другие конфигурации

Еще несколько любопытных колоний, имеющих долгое развитие, но в итоге эволюционирующих в периодические. Рассмотрите их эволюцию самостоятельно.

Долгоживущие колонии

Полезные ссылки

Если вас заинтересовала эта игра, вы найдете много информации о ней на сайте FAM Life Ссылка на внешний сайт, откроется в новом окне.