14

Симулятор бактерий

И еще немного покодив после незамеченных почти никем постов (да и исправив тучу косяков), слегка переделанное творение. @unrecovered призываю тебя тоже посмотреть.

Симулятор бактерий Эволюция, Программирование, Java

Для начала краткое описание параметров:

FPS - сколько раз в секунду будет перерисована картинка.

Шаг симуляции - пауза между итерациями.

Интенсивность света - сколько энергии каждый из источников света, убывает по мере удаления.

Шанс мутации - вероятность мутации в процентах.

Миролюбивость - разница в генах при которой считается, что клетки родственники.

Предел энергии - максимальное количество энергии которое может накопить клетка.

Зона размножения - зона в которой клетка может разделиться, но еще не умирает от переедания.

Расход энергии за действие - сколько энергии стоит каждое действие клетки (движение, обзор, поворот).

Сила атаки - сколько энергии отнимается при удачной атаке на клетку или теряется при неудачной.


Цвет выбирается в зависимости от количества мутаций разного рода.


Есть немного статистики и информация о клетке: ее поколение, количество мутаций (удлинение гена, сокращение и изменение) и собственно сам ген.


Действия которые может сделать клетка: расти, посмотреть, повернуться в одну сторону или другую, двинуться/атаковать и съесть трупик (если он там есть).


Пробовал разные варианты действий клетки и кучу вариантов расчета силы, в итоге пока остановился просто на сравнении уровня энергии. Может кто придумает зрелищней вариант

Так же, если кому интересно будет дать совет, то так и не придумал как действия клеток можно распараллелить, сейчас они ходят все по очереди. Да и вообще любые идеи интересно послушать.


Хотел бы добавить динамическое редактирование всех параметров, но для этого бы отполировать сам алгоритм. Минимум деталей, максимум неожиданностей.


Исходники здесь: https://github.com/xfjgkss/GeneCells

А это прямая ссылка на скомпиленый файл:

https://github.com/xfjgkss/GeneCells/raw/master/out/artifact...

(Там jar файл для запуска которого нужна установленная Java SE Runtime Environment)