Детерминированный, пошаговый движок для симуляции игры в Тетрис с уникальными механиками. Проект предназначен для разработки ИИ-ботов, балансирующих между набором очков и минимизацией отклонения от динамически изменяющейся "целевой кривой".
Разработка алгоритма, который на фиксированной последовательности из 100,000 фигур достигнет наилучшего Итогового Результата (Final Score). Результат вычисляется как среднее гармоническое двух показателей:
- Классический Счет (
Game Score): Очки за очистку линий. - Точность Аппроксимации (
Approximation Precision): Мера соответствия профиля высот поля "целевой кривой".
Итоговая метрика чувствительна к дисбалансу. Оптимальный результат достигается при сбалансированной производительности.
- Клонирование репозитория: Получите исходный код движка и примеры ботов.
- Разработка бота: Создайте класс бота, наследующий от
BaseBotи реализующийchoose_move(). - Локальное тестирование: Используйте симулятор для запуска игр, анализа логов и визуализации.
- Генерация лога решения: Запустите симуляцию на актуальном
seedдля созданияmy_best_run.json. - Отправка решения: Загрузите
my_best_run.jsonв систему соревнований.
- Детерминизм: При одинаковом
seedпоследовательность фигур идентична, обеспечивая воспроизводимость. - Целевая кривая: Генерируется фиксированно вначале каждого раунда
- Система Оценки:
- Game Score (S): Очки за очищенные линии.
- Approximation Error (P): Ошибка (MSE) между высотами поля и целевой кривой.
P— сумма всех ошибок за игру. - Final Score:
Final Score = 2 / (1/S_norm + 1/P_norm). Среднее гармоническое нормализованных показателей.
-
Установка с PyPI:
pip install tttarena
-
Запустите симуляцию с базовым ботом:
python main.py --seed 42 python main.py --seed 42 --render [cli/pygame]
-
Изучите результат: Лог игры будет в
run_logs/. Верифицируйте его:python tttarena/verify.py run_logs/my_best_run.json
-
Разработка бота: Создайте
tttarena/bots/my_bot.pyдля собственного алгоритма (смотри бейзлайн на колабе)
Проект предоставляет гибкие возможности визуализации. Выберите встроенный или создайте свой.
Для запуска симуляции с визуализацией используйте флаг --render:
poetry run python main.py --seed 123 --render <имя_визуализатора>Встроенные визуализаторы:
cli: Консольная текстовая визуализация.pygame: Графическая визуализация с Pygame.
Добавление собственных визуализаторов:
git clone https://github.com/your-org/tttarena.git
cd tttarena
poetry install- Создайте
your_visualizer_name.pyвtttarena/simulator/visualizers/. - Определите класс, наследующий от
BaseVisualizerи реализующий его абстрактные методы. - Добавьте информацию о вашем визуализаторе в
VISUALIZERSвmain.py.