Новая версия системы 3.6 24 октября 2017

Вначале - о других мелочах. Changelist:

  • Исправлена проблема с второстепенными функциями типа "Экспорта", связанная с сессиями и неверно определявшимися куками;
  • Обновлён интерфейс списка синхронов: теперь рыться в архиве не так страшно;
  • Исправлены несколько застарелых ошибок со счётчиками на странице турниров - теперь количество вопросов показывается, даже если нет редакторской группы и результатов, а также улучшен счётчик команд на синхронах согласно предварительным заявкам;
  • Исправлен застарелый баг с отправкой писем о нескачанных пакетах вопросов по давно завершившимся турнирам;
  • Исправлен не всегда срабатывавший механизм удаления бесхозных спорных ответов на странице спорных;
  • Исправлена пунктуационная опечатка во всех раздражающей надписи "Ой! Кажется, где-то у нас случилась досадная ошибка." :)
  • Расширен API: теперь можно получать рейтинги игрока в различных релизах, турниры, в которых участвовал игрок, команды, в БС которых он был
  • Добавлен (и уже несколько раз переработан) механизм "иррегулярных" команд, отображающихся в общем релизе в дополнение к обычным командам -- "полурегулярные" команды без официального, но с фактическим (т.н. динамическим) БС в зелёном цвете, и часто играющие сборные в сером цвете. Об этом чуточку подробней ниже.

О механизме иррегулярных команд

В обычные релизы с рейтингом-Б, рассчитываемые для регулярных команд с заявленным базовым составом (БС), мы также вводим т.н. "иррегулярные" команды - команды, для которых не заявлен базовый состав. Эти команды условно подразделяются также на два типа: полу-регулярные, - команды без заявленного БС, но играющие стабильно таким составом из "свободных агентов", из которых можно составить БС; и сборные, - команды, играющие стабильно таким составом, из которого нельзя собрать БС. Виртуальный базовый состав, который может быть собран для полу-регулярной команды, назовём динамическим; в зависимости от условий алгоритма, он может изменяться хоть каждый релиз. Также стоит упомянуть, что отображение иррегулярных команд в релизах носит информационный характер и де-факто никак не влияет на расчёт рейтингов других команд. Кроме того, данный механизм пока что введён в экспериментальном режиме, что означает возможность последующих изменений в алгоритме его расчёта.

Опишем алгоритм расчёта динамических БС, производимого в каждом релизе:

  1. Берём 90 дней вглубь от релиза; находим всех игроков, кто играл за любые команды в это время на рейтингуемых турнирах, и не находится в заявленных БС на момент релиза (т.н. "свободных агентов");
  2. Эти игроки сортируются по убыванию индивидуального рейтинга на данном релизе;
  3. Для каждого игрока собирается список команд, к динамическому БС которой этот игрок может принадлежать:
    1. В этот список вносятся все команды, за которые игрок был заигран за последние 90 дней;
    2. Если за последние 365 дней игрок сыграл за команду меньше, чем 3 игры, - команда вычёркивается из списка;
    3. Если у команды есть достаточный заявленный БС на момент релиза, - команда вычёркивается из списка;
    4. Если релиз относится к началу сезона (до декабря) для сезонов, начиная с 2015/2016, а в конце прошлого сезона у команды был БС и она сыграла меньше, чем 2 игры в новом сезоне, - команда вычёркивается из списка.
  4. Список команд сортируется по следующим признакам, представленным ниже в порядке убывания их важности:
    1. Количество игр за эту команду за последние 90 дней (по убыванию);
    2. Был ли игрок в БС этой команды (динамическом или заявленном) в прошлом релизе? (да / нет);
    3. Рейтинг команды в прошлом релизе (по убыванию);
    4. В порядке увеличения ID команды (по возрастанию, для увеличения приоритета более старых команд).
  5. Начиная с самого сильного игрока, приписываем игрока к динамическому БС команды по следующему алгоритму:
    1. Берём первую команду из списка у игрока. Если в более, чем половине от максимум последних пяти игр команда сыграла как минимум с 4-мя свободными агентами, а также если в динамическом БС этой команды сейчас меньше, чем 6 игроков, приписываем игрока туда, и переходим к следующему игроку;
    2. Если пунктом выше приписание не состоялоось, берём следующую команду из списка у игрока.
  6. Если по окончанию процесса приписки игроков в динамическом БС команды их количество меньше 5, - команда считается сборной (обозначается серым цветом). Если 5 или 6, - команда считается полу-регулярной (обозначается зелёным цветом).
  7. Рейтинг зелёной команды в релизе считается как технический для динамического БС.
  8. Рейтинг серой команды в релизе считается как технический для состава из шести игроков с наилучшими рейтингами, участвовавших в турнирах за эту команду в последние 90 дней.