Консольная симуляция экосистемы, написанная на Go.
Проект моделирует взаимодействие различных объектов на двумерной карте. Животные самостоятельно принимают решения, перемещаются по миру, ищут пищу, размножаются и погибают, а растения со временем восстанавливаются, поддерживая баланс экосистемы.
- Двумерный игровой мир
- Травоядные ищут ближайшую траву и питаются ею
- Хищники охотятся на травоядных
- Существа постепенно голодают
- Размножение животных
- Восстановление травы
- Пауза и продолжение симуляции
- Завершение программы в любой момент
Во время разработки проекта я познакомился с:
- интерфейсами;
- композицией структур;
- разделением данных и бизнес-логики;
- организацией приложения через сервисы;
- моделированием поведения объектов;
- работой со структурами, срезами и map.
Проект разделен на отдельные сущности и сервисы.
- Entity — описание объектов игрового мира.
- Service — логика поведения существ и взаимодействия между ними.
- World — управление состоянием игрового мира.
- Renderer — отображение симуляции в консоли.
| Действие | Клавиша |
|---|---|
| Пауза / продолжить | p + Enter |
| Выход | q + Enter |
- Go 1.20+
- Git
git clone https://github.com/themidnightdev404/simulation.git
cd simulationgo run .В дальнейшем проект можно расширить:
- добавить новые виды существ;
- реализовать разные типы местности;
- добавить параметры симуляции;
- сохранить статистику жизни экосистемы;
- визуализировать симуляцию в графическом интерфейсе.