Skip to content

Коронавирус на минималках

Notifications You must be signed in to change notification settings

Matavilla/LifeHub

Repository files navigation

LifeHub (python 3.7+)


Оглавление

  1. Описание программы
  2. Описание вселенной игры
  3. Описание параметров
  4. Схемы проекта
  5. Описание установки

Описание программы

Данная программа является симулятором эволюции живых организмов (см.подробное описание вселенной). Пользователь может регулировать параметры вселенной для получения различных вариантов эволюции существ. Каждое существо имеет два вида генотипов - генотип команд для ИИ существа и генотип параметров существа. Для скрещивания используются классические варианты кроссовера и мутаций.

Стрелки вверх и вниз соответственно позволяют увеличивать или уменьшать время тика внутри pygame.

Рекомендованные параметры для запуска:

Тик вселенной - 999
Число периодов отбора - 1
Начальное число еды - 200
Период генерации для всех биомов - 3
Число ботов в любом биоме от 30 до 70
Размер карты - маленький.

Оглавление


Описание вселенной игры

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

Оглавление


Описание параметров

Параметры вселенной:

  1. Тик вселенной (за это время совершается одно действие).
  2. Начальное количество еды и период генерации для каждого биома (место генерации в биоме - случайное).
  3. Максимальное число существ для каждого биома.
  4. Число периодов отбора для создания начальной популяции для кажого вида существ.

Параметры существ:

  1. Скорость - сколько тиков занимает одно действие существа.
  2. Здоровье. Если здорове меньше нуля, то существо умирает.
  3. Приспособленность к климату - уменьшает отрицательное влияние биома на существо.
  4. Броня - определяет стойкость существа к атаке от другого существа.
  5. Атака - наносит урон здоровью другого существа.
  6. Агрессивность - влияет на желание атаковать другое свущество.
  7. Чувствительность к еде/яду - влияет на распознавание еды/яда.

Оглавление


Схемы проекта

Схема GUI: Примерная схема GUI проекта

Схема архитектуры программы: Примерная архитектура проекта

Оглавление


Описание установки

Сборка колеса

ninja wheel 

или просто:

ninja

Колесо установится в папку dist текущего каталога. Колесо устанавливается через pip3 install <файл с колесом> .

Выбор локализации

После установки пакета, для запуска на английской локализации можно использовать:

LANG=en_US.UTF-8 python3 -m LifeHub

Для запуска на польской локализации:

LANG=pl_PL.UTF-8 python3 -m LifeHub

Запуск тестов, сборки документации и проверки CodeStyle

Проверить все тесты:

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

Оглавление


About

Коронавирус на минималках

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages