[Из песочницы] Аналог игры «Жизнь» — Evo
Приветствую вас, хабражители!Недавно прочитал статью про игру Жизнь, и вспомнилось мне, что я в мае этого года начинал писать свой проект подобной направленности. Только вот интерес к нему за рутиной работы быстро угас, хотя написано было немало. И сейчас, вдохновлённый этой статьёй, я взял этот проект с пыльной полки и добавил несколько фич, о которых расскажу далее.
Вкратце, мой вариант имеет следующие условия:
- жизнь развивается на поле 256*256 клеток;
- на поле могут размещаться объекты трёх типов: живность, пища(назовем её травой) и камень (препятствие);
- живность представляет собой фактически модифицированную машину Тьюринга, если точнее, то это больше похоже на Автомат с магазинной памятью, т.е. живность является «процессором», выполняющим свой «генетический» код;
- живность имеет возможность совершать определенные действия (двигаться, есть, размножаться (пока только клонированием, мутации будут со дня на день, скрещивание в перспективе)), отдавая соответствующие команды;
- наступив на траву, живность её вытаптывает;
- для поглощения еды надо дать команду «Ешь в этом направлении!», находясь в соседней клетке;
- живность имеет память, что позволяет строить циклы, условия и т.п., т.е. полная по Тьюрингу (поправьте меня, если не прав!), объем памяти неограничен;
- живность может складывать и вычитать значения в уме, разрядность ограничена одним байтом;
- существует возможность реализации генетических алгоритмов (пока не реализовано).
Читать дальше →