Skip to main content

Deterministic, turn-based Tetris engine with 'Nightmare' mechanics (target curve, petrification, entropy budget)

Project description

🏆 tttarena

PyPI version Colab Kaggle

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


🎯 Цель

Разработка алгоритма, который на фиксированной последовательности из 100,000 фигур достигнет наилучшего Итогового Результата (Final Score). Результат вычисляется как среднее гармоническое двух показателей:

  1. Классический Счет (Game Score): Очки за очистку линий.
  2. Точность Аппроксимации (Approximation Precision): Мера соответствия профиля высот поля "целевой кривой".

Итоговая метрика чувствительна к дисбалансу. Оптимальный результат достигается при сбалансированной производительности.


🚀 Руководство по участию

  1. Клонирование репозитория: Получите исходный код движка и примеры ботов.
  2. Разработка бота: Создайте класс бота, наследующий от BaseBot и реализующий choose_move().
  3. Локальное тестирование: Используйте симулятор для запуска игр, анализа логов и визуализации.
  4. Генерация лога решения: Запустите симуляцию на актуальном seed для создания my_best_run.json.
  5. Отправка решения: Загрузите my_best_run.json в систему соревнований.

🔧 Ключевые Механики

  • Детерминизм: При одинаковом seed последовательность фигур идентична, обеспечивая воспроизводимость.
  • Целевая кривая: Генерируется фиксированно вначале каждого раунда
  • Система Оценки:
    • Game Score (S): Очки за очищенные линии.
    • Approximation Error (P): Ошибка (MSE) между высотами поля и целевой кривой. P — сумма всех ошибок за игру.
    • Final Score: Final Score = 2 / (1/S_norm + 1/P_norm). Среднее гармоническое нормализованных показателей.

✨ Быстрый старт

  1. Установка с PyPI:

    pip install tttarena
    
  2. Запустите симуляцию с базовым ботом:

    python main.py --seed 42
    python main.py --seed 42 --render [cli/pygame]
    
  3. Изучите результат: Лог игры будет в run_logs/. Верифицируйте его:

    python tttarena/verify.py run_logs/my_best_run.json
    
  4. Разработка бота: Создайте 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
  1. Создайте your_visualizer_name.py в tttarena/simulator/visualizers/.
  2. Определите класс, наследующий от BaseVisualizer и реализующий его абстрактные методы.
  3. Добавьте информацию о вашем визуализаторе в VISUALIZERS в main.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tttarena-0.1.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tttarena-0.1.1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

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

Hashes for tttarena-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7523f1c54484a660da79871a140b383faa0a215a50a79f1bdd7b99246e542d9e
MD5 4bf93ab90de48d9d3cd481fd952537fb
BLAKE2b-256 57bc35c6ec37e5c8a017678d823fa126e1aff73a9cda91096cd4b5812ef3d21f

See more details on using hashes here.

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

Hashes for tttarena-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b2e6155f84365129ad4a46da232bdb6a84d2d0123c59e919f75f935c79e9bf7a
MD5 d6e6ea67c5a26b8cdded10abf5ab8056
BLAKE2b-256 7b8dfe87d4a1dfab76ec6f90a2c5e26fd09f7082f737feb8a2847e57de14beaa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page