Игровой бот для соревнований муравьёв в игре DatsPulse. Команда SubSchool представляет собой умного бота, который управляет муравьями для сбора ресурсов, исследования карты и борьбы с противниками.
Проект состоит из двух основных частей:
- API клиент - взаимодействие с игровым сервером
- Игровой бот - логика принятия решений для муравьёв
- WebSocket сервер - передача данных на фронтенд
- Модели данных - структуры для работы с игровыми объектами
- HexMap - визуализация игровой карты
- ControlPanel - управление ботом
- LogPanel - отображение логов
- Sidebar - дополнительная информация
cd backend
python3 -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.pycd frontend
npm install
npm run dev- Worker (type=0) - сборщики ресурсов, ищут еду и несут её в муравейник
- Fighter (type=1) - бойцы, атакуют врагов и патрулируют территорию
- Scout (type=2) - разведчики, исследуют неизвестные области карты
- Приоритет еды - муравьи с едой всегда идут к муравейнику
- Поиск ресурсов - рабочие и бойцы ищут ближайшую еду
- Боевые действия - бойцы атакуют врагов в радиусе 3 клеток
- Разведка - разведчики исследуют неизвестные клетки
- Умный fallback - если нет целей, выбирают направление в зависимости от наличия еды
- Муравьи с едой выбирают из трёх соседних клеток, которые ближе к муравейнику
- Муравьи без еды выбирают из трёх соседних клеток, которые дальше от муравейника
- Минимизация случайных движений
- Логи - подробные логи всех действий бота
- WebSocket - реальное время обновления состояния игры
- Визуализация - гексагональная карта с муравьями, едой и врагами
- Устойчивость к ошибкам - бот продолжает работать даже при проблемах с API
- Умная навигация - A* алгоритм для поиска путей
- Ручная приоритизация - возможность задать цели для конкретных муравьёв
- Rate limiting - соблюдение лимитов API (3 запроса в секунду)
- Автоматическая перерегистрация - поддержание соединения с игрой
MIT License - используйте свободно для обучения и соревнований.
Команда SubSchool - создано для участия в DatsPulse! 🐜⚡