🏆 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.
Metadata
Release files for tttarena 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tttarena-0.1.2.tar.gz | 18.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tttarena-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.8 kB
Release files / tttarena-0.1.2.tar.gz
| Download URL | tttarena-0.1.2.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc254f988467a96c31676807201c3cb69230c5e152778a2d555736eaa54cdeca
|
|
BLAKE2b-256 checksum How to use checksums |
9f97757fd40313d3575c4140e51822c155e7a3a8db570e9cd35ec3198afcbdd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.5 Darwin/24.6.0
|
Release files / tttarena-0.1.2-py3-none-any.whl
| Download URL | tttarena-0.1.2-py3-none-any.whl |
|---|---|
| Size | 24.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d43974f5cf506596af361e100ba4b30b4a735158329dbd7cca10ed9021109e0a
|
|
BLAKE2b-256 checksum How to use checksums |
13c240a27f843fe201e148e8e8d152d65a2f9a9d430eec566c90801e17b43c42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.5 Darwin/24.6.0
|
Security for tttarena 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.