Данная программа является симулятором эволюции живых организмов (см.подробное описание вселенной). Пользователь может регулировать параметры вселенной для получения различных вариантов эволюции существ. Каждое существо имеет два вида генотипов - генотип команд для ИИ существа и генотип параметров существа. Для скрещивания используются классические варианты кроссовера и мутаций.
Стрелки вверх и вниз соответственно позволяют увеличивать или уменьшать время тика внутри pygame.
Рекомендованные параметры для запуска:
Тик вселенной - 999
Число периодов отбора - 1
Начальное число еды - 200
Период генерации для всех биомов - 3
Число ботов в любом биоме от 30 до 70
Размер карты - маленький.
В игре представлено три биома(холодный, умеренный, теплый), в каждом из которых существует свой вид существ(имееют синий, белый, фиолетовый цвет). Каждому виду и биому соответствует свой определенный цвет. Холодный биом находится на севере карты, умеренный - по середине карты, а теплый - на юге карты. Все виды существ отличаются друг от друга, и это отличие прявляется в различных свойствах видов(например, различный уровень агрессии у существ). Так же в каждом биоме существует свой вид еды для существ, которая может быть и ядовитой. Главная цель существа – выжить и размножиться. Для этого ему нужно собрать как можно больше "жизней".
- Тик вселенной (за это время совершается одно действие).
- Начальное количество еды и период генерации для каждого биома (место генерации в биоме - случайное).
- Максимальное число существ для каждого биома.
- Число периодов отбора для создания начальной популяции для кажого вида существ.
- Скорость - сколько тиков занимает одно действие существа.
- Здоровье. Если здорове меньше нуля, то существо умирает.
- Приспособленность к климату - уменьшает отрицательное влияние биома на существо.
- Броня - определяет стойкость существа к атаке от другого существа.
- Атака - наносит урон здоровью другого существа.
- Агрессивность - влияет на желание атаковать другое свущество.
- Чувствительность к еде/яду - влияет на распознавание еды/яда.
ninja wheel
или просто:
ninja
Колесо установится в папку dist текущего каталога. Колесо устанавливается через pip3 install <файл с колесом> .
После установки пакета, для запуска на английской локализации можно использовать:
LANG=en_US.UTF-8 python3 -m LifeHub
Для запуска на польской локализации:
LANG=pl_PL.UTF-8 python3 -m LifeHub
Проверить все тесты:
ninja test
Имеются тесты как для pytest, так и для doctest. В случае doctest проверяется только 1 модуль LifeHub/src/Handler.py. Тесты для pytest лежат в папке tests.
Для отдельного запуска тестов pytest и doctest:
ninja pytest
ninja doctest
Проверить код стайл через flake8:
ninja codestyle
Сборка документации:
ninja builddoc
Исходники документации лежат в папке docs. Собранная документация будет лежать в папке docs/_build. Саму документацию можно посмотреть в docs/_build/html/index.html.
Очистка генерата:
ninja distclean
Требуется python версии не ниже 3.7. На остальных версиях работа не гарантируется.
Игру также можно запустить с помощью скрипта в текущей директории:
python3 run.py
Или с перенаправлением вывода логов:
./run