Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BrainRingPad

Портативный пульт и экран зала для турниров по «Брейн-рингу». Сетка строится по схеме двойного выбывания (double elimination).

Чистый старт

В репозитории нет личных данных: ни названий команд, ни счетов, ни фонов, ни сохранённых турниров. Приложение стартует с пустого состояния, а всё, что вы вводите, живёт только в вашем браузере (localStorage) и в памяти локального сервера. В репозиторий эти данные не попадают.

Возможности

  • Список команд одной строкой на команду, кнопка «Перемешать» — случайная жеребьёвка.
  • Сетка двойного выбывания строится кнопкой «Сформировать таблицу».
  • Флажок «Вторая игра финала» добавляет вторую игру гранд-финала: чемпион определяется по двум играм.
  • Ведение турнира: Старт → текущий бой на зале → Дальше или Отменить (откат на шаг назад) → Остановить игру.
  • По завершении чемпион выводится в центр зала.
  • Кнопка «Схема турнира» показывает сетку на пульте, «Экран зала» — открывает/переключает окно зала.
  • Пульт оператора и экран зала — два независимых окна: на зал не попадает ничего лишнего, кроме игровой картинки.

Экран зала

Зал открывается отдельным окном браузера на другом мониторе в режиме приложения (--app) со своим профилем — личные вкладки оператора не затрагиваются. Esc закрывает окно зала. Кнопка «Экран зала» на пульте переключает монитор, если их несколько.

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

Портативно (без установки Python). Скопировать папку целиком, включая runtime\python\, и запустить BrainRing.bat. Откроется пульт оператора; консольное окно нужно держать открытым — его закрытие останавливает сервер.

Из исходников. Нужен Python 3.10+ (проверено на 3.12):

python serve.py

Порт по умолчанию — 3851, переопределяется переменной окружения PORT.

Браузер: Edge или Chrome (для зала используется режим приложения --app). Система: Windows 10/11 64-bit.

Портативный runtime

Приложение работает на embeddable CPython 3.12, который лежит в runtime\python\. Раньше папка копировалась вместе с проектом — в репозитории её нет: это 22 МБ бинарников, которые бессмысленно держать в git.

Восстановить runtime одной командой из корня проекта:

powershell -ExecutionPolicy Bypass -File scripts\get-runtime.ps1

Скрипт скачивает официальный python-3.12.10-embed-amd64.zip с python.org и распаковывает его в runtime\python. Ничего не ставится в систему, права администратора не нужны. Если runtime\python\python.exe уже есть — скрипт ничего не делает.

Никаких внешних зависимостей: serve.py использует только стандартную библиотеку Python.

Структура

BrainRingPad/
  BrainRing.bat            запуск (портативно)
  serve.py                 локальный HTTP-сервер, только stdlib
  index.html               пульт оператора
  display.html             экран зала
  css/app.css              оформление
  js/bracket.js            построение сетки двойного выбывания
  js/operator.js           логика пульта
  js/render.js             отрисовка сетки
  js/display.js            отрисовка зала
  js/bus.js                шина между окнами
  logo.svg, app.ico
  scripts/get-runtime.ps1   восстановление runtime\python

HTTP API

Локальный сервер слушает 127.0.0.1:3851 и отдаёт состояние залу через обычные JSON-эндпоинты (интеграции и автоматизация):

Метод Путь Назначение
GET /api/state текущее состояние турнира
POST /api/state записать состояние турнира
GET /api/status статус сервера, мониторы, браузер
GET /api/open-display открыть экран зала
GET /api/cycle-display переключить монитор зала
GET /api/reload-display перезагрузить окно зала

Лицензия

MIT — см. LICENSE.

About

Портативный пульт и экран зала для турниров по брейн-рингу: сетка двойного выбывания, два экрана — оператор и проектор

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages