Ниже приведена часть шахматного рейтинга Эло al go (извините за соглашение об именах, оно является предварительным):
let newRankRed = red[rank] + (redK * (results[result] - winProbRed))
let newRankBlue = blue[rank] + (blueK * (Math.abs(results[result]-1) - winProbBlue))
Коэффициент K (redK, blueK) - это число, которое изменится в зависимости от того, сколько матчей было у игрока. Объекты Player хранятся в БД, а свойство записи (количество совпадений у них) является просто числовым свойством объекта Player. Мой вопрос таков: у двух игроков был матч, и результат был отправлен в приложение. Приложение попадает в базу данных, выбирает обоих игроков и проверяет их записи, чтобы определить правильный коэффициент K для каждого игрока. Два игрока, два отдельных коэффициента K: Каков наилучший способ назначить правильный коэффициент K? Я знаю, что у нас может быть несколько условных операторов, таких как:
if (red.record >= 0 && red.record <=10) redK = 32
else if ...
Но это приведет к длинному и неуклюжему коду, и это должно быть сделано для каждого игрока.
Может кто-нибудь предложить лучшую альтернативу?