Решил написать небольшие заметки о том, как устроен мой проект "Искусственная жизнь".
Мои решения не являются единственно правильными и идеальными, но возможно помогут кому-то в создании своего кибермира.
Начнем с генома. В качестве генов выступает код, который отвечает за поведение бота. Код должен быть простым и выдерживать различные модификации(случайное изменение любого элемента в коде) над собой без синтаксических ошибок.
Код-геном представляет из себя цепочку чисел. Каждое число - это какая то команда(в простейшем случае).
Также есть указатель текущей команды, который показывает, какая команда будет сейчас выполняться и после выполнения команды, указатель перемещается к следующей команде. Если указатель вышел за край цепочки, то он появляется с противоположной стороны, то есть цепочка команд замкнута по кругу. Изначально я выбрал размер цепочки в 64 ячейки и назначил некоторым числам первые команды. Если числу не соответствует никакая команда, то это число является безусл