Подсчитайте итоговые результаты в игре относительно предыдущих результатов и других игроков. - PullRequest
2 голосов
/ 06 февраля 2009

Предполагая многопользовательскую игру, какой бы вы ни были честный способ, дайте окончательные оценки, основанные на предыдущих оценках всех игроков.

Например, в матче с двумя игроками игрок A, имеющий в два раза больше очков, чем игрок B. "A", финишировавший первым, не даст ему много очков; финишировав последним, он потерял бы немало очков.

Ответы [ 3 ]

4 голосов
/ 06 февраля 2009

Вы когда-нибудь читали о рейтинговой системе Эло , используемой в шахматах?

Я не думаю, что это точно подходит для вашего сценария, но это может дать вам несколько идей.

3 голосов
/ 06 февраля 2009

Вы, вероятно, хотите использовать что-то вроде того, что ФИДЕ использует для подсчета очков в шахматах, а именно Рейтинговая система Эло

2 голосов
/ 07 февраля 2009

У Microsoft есть довольно крутая рейтинговая система, которую я когда-нибудь внедряю в свою очередь. Это называется TrueSkill. Позволяет корректировать рейтинги игроков лицом к лицу и командами. Вы можете прочитать об этом здесь: http://research.microsoft.com/en-us/projects/trueskill/details.aspx

Преимущество состоит в том, что он должен стремиться к вашему истинному навыку быстро (обычно в 20 играх или меньше). Недостатком является то, что это довольно сложно.

Система ELO (и другие подобные ей) имеют недостаток в том, что они страдают от проблемы, называемой точечной инфляцией. Например, если 1500 означает среднего игрока, со временем это уже не будет иметь место. При достаточном количестве игр истинное среднее значение (для населения в целом) в конечном итоге возрастет. Таким образом, средний игрок действительно может быть 1600, но намерение было 1500, чтобы быть средним. Таким образом, многие среднестатистические игроки считают, что они лучше, чем они есть:).

Однако преимущество системы ELO в том, что ее очень легко рассчитать.

...