Игра жизнь
Не так давно вспомнил своё старое увлечение — ЖИЗНЬ. Математическая игра такая. Почитал я какой-то журнальчик, а там упоминалось, что мол какие-то новые процессоры делают с алгоритмами обработки массивов данных по правилам, напоминающим игру Жизнь. Игра-то вроде не игра. Проигравших нет, победивших тоже. Да уж очень неординарные решения получаются на игровом поле, да при таких простых правилах.
Игра выглядит следующим образом : всё происходит на бесконечной плоскости (в идеале). Плоскость разбита на клетки. Живые клетки закрашены и образуют определенный рисунок. Течение времени происходит как перерисовка рисунка. У каждой клетки (живой ли, мертвой ли) может быть от 0 до 8 соседей. Перерисовка происходит по следующим правилам :
- Если клетка имеет трех соседей, то она рождается (ну или отмечает день рождения
) - Если двух — живет
- Если меньше 2 умирает от одиночества, если больше трёх — от перенаселённости.
Обычно в начале игры задаются каким-либо рисунком и смотрят — чего получится. Результаты очень даже любопытные. Можно получить циклически меняющиеся рисунки, рисунки которые линейно перемещаются по полю, и даже рисунки, которые генерируют движущиеся фрагменты. Не правда ли фантастика?
Для демонстрации сляпал маленькую прогу назовем её Жизнь 1е-поколение , которая позволяет посмотреть несколько примеров-заготовок. К сожалению идет только на старых OS и под MSDOS…
Игру эту долго изучали математики (как дети, прямо), поэтому многие фигурки получили собственные имена, были классифицированы и исследованы. Через некоторое время мне стало интересным опробовать некоторые идеи и я написал ремейк
-Жизнь 2е-поколение
. Эта версия нормально идет под WinXP и W2K. Все в общем тоже самое, т.е. суть программы, но возможностей гораздо больше. Плоскость симулации размерами не ограничена, множество примеров запрограммировано в библиотеке. Можно генерировать картинку через несколько ходов, чтобы подстроить анимацию к циклам движения. Различные режимы масштабирования и т.п.