Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 5.58 KB

README.md

File metadata and controls

50 lines (41 loc) · 5.58 KB

Симулятор-естественного-отбора

Настраиваемая симуляция, демонстрирующая работу естественного отбора

Правила

Мир - поле 24х24. Поле циклично, т.е. выйдя за одну границу, Существо выйдет с противоположной. По умолчанию, на поле располагаются 36 Существ, 72 клетки с ядом и 72 клетки с едой.

Существа - единственные подвижные объекты, имеют три параметра - геном, шаг генома и сытость.
Геном - массив из 40 чисел от 0 до 64, каждое число это команда, которую должно выполнить Существо. Так же как и поле, геном цикличен.
Шаг(индекс) генома - число, показывающее какую по счёту команду выполнять, после каждой команды он изменяется, в зависимости от команды и её результатов.
Сытость - здоровье. Если оно опустится до 0, то Существо погибнет. Каждый день(ход) Существо теряет 1 единицу сытости, максимальная сытость ограничена 99 единицами.
Клетка с едой - когда Существо встаёт на эту клетку или взаимодействует с ней - оно съедает еду и получает +10 к сытости. Сразу после употребления, еда появляется в другой свободной клетке на поле.
Клетка с ядом - если Существо встаёт на эту клетку, то оно умирает, однако, если Существо взаимодействует с ядом, то оно обезвреживает его и съедает, получая +10 к сытости. Сразу после употребления, яд появляется в другой свободной клетке на поле.

Когда в мире остаётся 6 существ, начинается размножение - каждое Существо создаёт 5 идентичных себе копий и одну, у которой меняется случайное число в геноме(родительские Существа погибают). В результате чего на поле снова 36 Существ и всё повторяется сначала. За счёт естественного отбора, существа с удачными мутациями живут дольше и плодятся, вытесняя менее совершенных сородичей.

Большинство констант можно задать в начале симуляции, не бойтесь экспериментировать!

Команды генома

Если число 0..7, то Существо перемещается в соответствующую клетку и завершает ход
0 1 2
3 C 4
5 6 7
Если в клетке был яд, Существо погибает
Если в клетке было другое Существо, то геном пролистывается на два шага, а Существо остаётся на месте
Если в клетке была еда, то геном пролистывается на три шага, а Существо перемещается в эту клетку и съедает еду
Если клетка была пустой, то геном пролистывается на четыре шага, а Существо перемещается в эту клетку

Если число 8..15, то Существо взаимодействует с соответствующей клеткой и завершет ход
8  9  10
11 C  12
13 14 15
Если в клетке был яд, то геном пролистывается на один шаг, а Существо преобразует яд в еду и съест
Если в клетке было другое Существо, то геном пролистывается на два шага
Если в клетке была еда, то геном пролистывается на три шага, а Существо съедает еду из этой клетки
Если клетка была пустой, то геном пролистывается на четыре шага

Если число 16..23, то Существо смотрит, что находится в соответствующей клетке (команда не завершает ход)
16 17 18
19 C  20
21 22 23
Если в клетке был яд, то геном пролистывается на один шаг
Если в клетке было другое Существо, то геном пролистывается на два шага
Если в клетке была еда, то геном пролистывается на три шага
Если клетка была пустой, то геном пролистывается на четыре шага

Если число 24..64, то оно пролистывает геном Существа на свою величину, при этом ход не завершается