Игра жизнь

Не так давно вспомнил своё старое увлечение — ЖИЗНЬ. Математическая игра такая. Почитал я какой-то журнальчик, а там упоминалось, что мол какие-то новые процессоры делают с алгоритмами обработки массивов данных по правилам, напоминающим игру Жизнь. Игра-то вроде не игра. Проигравших нет, победивших тоже. Да уж очень неординарные решения получаются на игровом поле, да при таких простых правилах.

Игра выглядит следующим образом : всё происходит на бесконечной плоскости (в идеале). Плоскость разбита на клетки. Живые клетки закрашены и образуют определенный рисунок. Течение времени происходит как перерисовка рисунка. У каждой клетки (живой ли, мертвой ли) может быть от 0 до 8 соседей. Перерисовка происходит по следующим правилам :

  • Если клетка имеет трех соседей, то она рождается (ну или отмечает день рождения :) )
  • Если двух — живет
  • Если меньше 2 умирает от одиночества, если больше трёх — от перенаселённости.

Обычно в начале игры задаются каким-либо рисунком и смотрят — чего получится. Результаты очень даже любопытные. Можно получить циклически меняющиеся рисунки, рисунки которые линейно перемещаются по полю, и даже рисунки, которые генерируют движущиеся фрагменты. Не правда ли фантастика?

Для демонстрации сляпал маленькую прогу назовем её Жизнь 1е-поколение , которая позволяет посмотреть несколько примеров-заготовок.  К сожалению идет только на старых OS и под MSDOS…

Игру эту долго изучали математики (как дети, прямо), поэтому многие фигурки получили собственные имена, были классифицированы и исследованы. Через некоторое время мне стало интересным опробовать некоторые идеи и я написал ремейк :) -Жизнь 2е-поколение . Эта версия нормально идет под WinXP и W2K. Все в общем тоже самое, т.е. суть программы, но возможностей гораздо больше. Плоскость симулации размерами не ограничена, множество примеров запрограммировано в библиотеке. Можно генерировать картинку через несколько ходов, чтобы подстроить анимацию к циклам движения. Различные режимы масштабирования и т.п.