Привет @rio
Спасибо за предложение — и хорошее наблюдение, что вам не нужна полная поддержка McMahon, чтобы покрыть 80 % случаев использования. Настраиваемые стартовые очки по сути являются отсутствующим примитивом, а оттуда McMahon, компенсация позднего входа и несколько других сценариев естественно вытекают.
Думаю, это выполнимо. Основная техническая сложность в том, что движки парировок (bbpPairings, py4swiss) не принимают «свободные» очки в TRF — каждое очко должно быть привязано к результату раунда. Поэтому под капотом мы будем моделировать бонус как виртуальные пропуски, вставленные до первого раунда (например, 1,0 бонус = один полный пропуск, 0,5 = половинный пропуск). Пользователь видит только «стартовые очки = X»; гимнастика TRF происходит за кулисами.
Прежде чем я начну планировать это, несколько вопросов для вас (и всех остальных, кто следит за темой):
- Основной сценарий использования — это McMahon (бонусы по диапазону рейтингов, задаются до первого раунда), или речь о справедливости позднего входа (давать игроку, присоединившемуся к третьему раунду, какие-то очки для старта)? Оба варианта возможны, но UX отличается, и я бы приоритизировал тот, который важнее вам.
- Гранулярность — достаточно ли целочисленных бонусов (1, 2, 3 очка) для первой версии, или нужны половинные очки (1,5, 2,5)? Целые числа заметно проще реализовать.
- Тайбрейкеры — в ваших турнирах должны ли виртуальные бонусные раунды учитываться при расчёте Бухгольца и подобных тайбрейков, или игнорироваться? Стандартная конвенция McMahon — игнорировать их (учитываются только реальные противники), но я хочу подтвердить это перед кодированием.
- Реальные примеры — можете ли вы поделиться 1–2 конкретными турнирами, где это помогло бы? Даже грубое описание (число игроков, раунды, как вы бы распределили бонусы) достаточно. Я использую их в качестве тестовых случаев, чтобы убедиться, что реализация действительно решает проблему, а не то, о чём я предполагал.
Как только получу ответы, смогу дать более конкретный график. Спасибо ещё раз за продуманный запрос.