Skip to main content

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

Project description

🏆 tttarena

PyPI version Colab Kaggle Competition

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


🎯 Цель

Разработка алгоритма, который на фиксированной последовательности из 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.2.tar.gz (18.9 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.2-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file tttarena-0.1.2.tar.gz.

File metadata

  • Download URL: tttarena-0.1.2.tar.gz
  • Upload date:
  • Size: 18.9 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.2.tar.gz
Algorithm Hash digest
SHA256 cc254f988467a96c31676807201c3cb69230c5e152778a2d555736eaa54cdeca
MD5 38bfec8e2f8d1655b3d6a10c22c68236
BLAKE2b-256 9f97757fd40313d3575c4140e51822c155e7a3a8db570e9cd35ec3198afcbdd7

See more details on using hashes here.

File details

Details for the file tttarena-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: tttarena-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 24.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d43974f5cf506596af361e100ba4b30b4a735158329dbd7cca10ed9021109e0a
MD5 55d9888b4dbbec0bcb875b971494b604
BLAKE2b-256 13c240a27f843fe201e148e8e8d152d65a2f9a9d430eec566c90801e17b43c42

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