← Всё о преферансе/Как рассчитывается рейтинг в преферансе?

Как рассчитывается рейтинг в преферансе?

ПродвинутыйВремя чтения: ~5 минут

Зачем нужен рейтинг

Преферанс - игра коммерческая. Однако у нас, в SmartPref, не играют на реальные деньги, это бы противоречило условиям магазинов, но партии всё равно нужна ставка. Игроку важно не столько выиграть пулю, ему важно получить результат, который останется с ним после игры. Рейтинг берёт эту роль на себя: последствия каждой сдачи отражаются в рейтинге. Рейтинг показывает общий результат, который можно сравнивать, и даёт соперникам цель - за что и на что, собственно, они играют.

Как это было

Изначально рейтинг рассчитывался по итогам всей партии. Звучит, вроде логично, ведь расчёт в преферансе происходит по итогу игры. После победы рейтинг должен был расти, после поражения пропорционально снижаться. Но с этим было несколько проблем: пользователи иногда выходят до завершения игры, в том числе из-за плохого соединения. Наказывать за такой выход потерей рейтинга за всю партию слишком жёстко: система не может отличить намеренный выход от оборвавшейся связи.

Но была и более серьёзная причина отказаться от такой системы: рейтинг не задумывался как накопительный, но даже со сглаживанием постепенно стал именно таким. Чем дольше играл пользователь, тем выше в среднем оказывался его рейтинг, а общие значения продолжали расти. Такая инфляция особенно мешала новичкам: они сразу видели перед собой игроков с огромной и постоянно растущей форой. Когда видишь рейтинг в миллион баллов у топов - это демотивирует, согласитесь.

Как это стало

  1. Изменение рейтинга каждого игрока рассчитывается после каждой сдачи, а не после всей партии. Почему? Потому что каждая сдача в преферансе - тоже игра с нулевой суммой, как и вся игра целиком.
  2. Расчёт учитывает текущий рейтинг всех соперников за столом.
  3. У каждого уровня сложности ботов есть максимальный рейтинг. Это не позволяет бесконечно набирать очки на игре против ботов бесконечно долго (однако не мешает фармить до достаточно больших величин).
  4. На краях шкалы изменение рейтинга сглаживается. Игрок с высоким рейтингом не получает чрезмерный штраф за игру с новым соперником, рейтинг которого ещё слишком мал и не отражает его реальную силу игры, а игрок с низким рейтингом не получает слишком большой прирост за редкую победу над сильным.

Как рассчитывается рейтинг

Расчёт рейтинга производится после каждой сдачи. Итоговый рейтинг за игру = сумма рейтингов за сыгранные сдачи. (Перейти к калькулятору рейтинга)
Основные положения:

  • Начальный рейтинг игроков берётся равным 1000
  • В любительской лиге рейтинг может уменьшаться
  • Для перехода в Pro лигу нужно набрать 1800
  • В таблице лидеров возможны две сортировки: по текущему рейтингу пользователя и по максимальному на данный момент
- Rn - новый рейтинг; Rs - текущий рейтинг; Rd - дельта, набранная за данную сдачу
 Rn = Rs + Rd

- Rd - дельта рейтинга после каждой сдачи (после рейтинга 4000 применяется сглаживание)
 Vs - свои набранные висты (коэффициент Kd см. ниже)
 Vs > Vf: Rd = + Kd * sqrt(Vs - Vf)
 Vs < Vf: Rd = - Kd * sqrt(Vf - Vs)

- Vf - ожидаемый итог в вистах
 Vf = min((Rs - Rt) / Kv, 4) (Rt и Kv см. ниже)
 Максимальный Vf ограничен +4, полагая, что 4 виста - минимально возможный выигрыш на шестерной игре - не должен подвергаться штрафу

- Kv - (ожидаемый фактор вистов) — зависит от вашего рейтинга. Делает ожидания более справедливыми: от игроков с высоким рейтингом ожидаются хорошие результаты, но без нереалистичных требований. Игроки с рейтингом 1000 не должны получать рейтинг, если набрали менее -5 вистов против текущего обычного бота (1800).
 if (Rs > Rt): Kv = 60 + (Rs - Rt) / X (X=6 найдено эмпирически)
 else: Kv = 60 + (Rt - Rs) / Y (Y=22 найдено эмпирически)

- Kd - динамический коэффициент для сдач - уменьшается по мере роста разницы между вашим рейтингом и средним рейтингом стола.
 Игроки с высоким рейтингом не теряют рейтинг, несмотря на победу.
 Игроки с низким рейтингом не получают слишком большой прирост за редкие победы.
 Kd = clamp(baseKd / (1.0 + log10(1 + diff / 100)), minKd, maxKd)
 baseKd = 2.0 (базовое значение)
 minKd = 0.3 (минимальное ограничение)
 maxKd = 2.0 (предел для игроков с низким рейтингом против сильных столов)
 diff = abs(Rs - Rt) - абсолютная разница в рейтинге

- Rr1, Rr2 и Rr3 - рейтинги соперников; вклад в средний рейтинг стола больше от пользователя с бóльшим рейтингом;
 Rs - свой рейтинг
 Rt - рейтинг стола

 двое за столом:
  Rt = Rr1

 трое:
  Rt = (Rr1 * 2 + Rr2) / 3 (где Rr1 ≥ Rr2)

 четверо:
  Rt = (Rr1 * 3 + Rr2 * 2 + Rr3) / 6 (где Rr1 ≥ Rr2 ≥ Rr3)

Ниже приведен калькулятор, который можно использовать, чтобы лучше понимать, как рассчитывается рейтинг: просто введите цифры, и значения обновятся автоматически.
Каждый ряд - ваш рейтинг. Столбцы - средний рейтинг соперников

Калькулятор рейтинга

← Всё о преферансе

Начните играть в преферанс прямо сейчас!

Доступно в App StoreДоступно в Google Play