Deterministic, turn-based Tetris engine with 'Nightmare' mechanics (target curve, petrification, entropy budget)
Project description
🏆 tttarena
Детерминированный, пошаговый движок для симуляции игры в Тетрис с уникальными механиками. Проект предназначен для разработки ИИ-ботов, балансирующих между набором очков и минимизацией отклонения от динамически изменяющейся "целевой кривой".
🎯 Цель
Разработка алгоритма, который на фиксированной последовательности из 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tttarena-0.1.1.tar.gz.
File metadata
- Download URL: tttarena-0.1.1.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.13.5 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7523f1c54484a660da79871a140b383faa0a215a50a79f1bdd7b99246e542d9e
|
|
| MD5 |
4bf93ab90de48d9d3cd481fd952537fb
|
|
| BLAKE2b-256 |
57bc35c6ec37e5c8a017678d823fa126e1aff73a9cda91096cd4b5812ef3d21f
|
File details
Details for the file tttarena-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tttarena-0.1.1-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.13.5 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2e6155f84365129ad4a46da232bdb6a84d2d0123c59e919f75f935c79e9bf7a
|
|
| MD5 |
d6e6ea67c5a26b8cdded10abf5ab8056
|
|
| BLAKE2b-256 |
7b8dfe87d4a1dfab76ec6f90a2c5e26fd09f7082f737feb8a2847e57de14beaa
|