Есть ли какое-либо программное обеспечение или веб-сервис для рейтингов Elo на клубном уровне?


19

Существует ли какое-либо программное обеспечение (или веб-сервис), которое позволяет отслеживать местные рейтинги Эло на клубном уровне?

Эти рейтинги не будут иметь никакого отношения к официальным рейтингам Эло, это будет просто рейтинг Эло во вселенной игроков в клубе (то есть игры в различных социальных турнирах будут рассчитываться для рейтинга).


2
Это интересная идея для проекта.
Ева Фриман,

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

Ответы:


10

Даже если это не доступно, что-то подобное не так сложно реализовать самостоятельно. Вот пример с чрезвычайно глупой и простой рейтинговой системой, которая просто призвана дать вам представление. Но я не думаю, что использовать настоящую формулу Эло намного сложнее.

РЕДАКТИРОВАТЬ: я редактирую мою реализацию, чтобы использовать формулу Эло (не включая этажи), заданные формулой здесь

def get_exp_score_a(rating_a, rating_b):
    return 1.0 /(1 + 10**((rating_b - rating_a)/400.0))

def rating_adj(rating, exp_score, score, k=32):
    return rating + k * (score - exp_score)

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):

        exp_score_a = get_exp_score_a(self.rating, other.rating)

        if result == self.name:
            self.rating = rating_adj(self.rating, exp_score_a, 1)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0)
        elif result == other.name:
            self.rating = rating_adj(self.rating, exp_score_a, 0)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 1)
        elif result == 'Draw':
            self.rating = rating_adj(self.rating, exp_score_a, 0.5)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0.5)

Это работает следующим образом:

>>> bob = ChessPlayer('Bob', 1600)
>>> john = ChessPlayer('John', 1900)
>>> bob.rating
1600
>>> john.rating
1900
>>> bob.match(john, 'Bob')
>>> bob.rating
1627.1686541692377
>>> john.rating
1872.8313458307623
>>> mark = ChessPlayer('Mark', 2100)
>>> mark.match(bob, 'Draw')
>>> mark.rating
2085.974306956907
>>> bob.rating
1641.1943472123305

Вот моя оригинальная реализация на python:

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):
        if result == self.name:
            self.rating += 10
            other.rating -= 10
        elif result == other.name:
            self.rating += 10
            other.rating -= 10
        elif result == 'Draw':
            pass

Это работает следующим образом:

>>> bob = ChessPlayer('Bob', 1600)
>>> john = ChessPlayer('John', 1900)
>>> bob.match(john, 'Bob')
>>> bob.rating
1610
>>> john.rating
1890
>>> mark = ChessPlayer('Mark', 2100)
>>> mark.match(bob, 'Mark')
>>> mark.rating
2110
>>> bob.rating
1600
>>> mark.match(john, 'Draw')
>>> mark.rating
2110
>>> john.rating
1890  

Я думаю, что Эло, возможно, так же просто, как это. :)
Ева Фриман

Ницца. Если ОП хотел изменить это, скажем, фактический алгоритм рейтинга USCF, математические детали доступны в разделе 2 настоящего документа: glicko.net/ratings/rating.system.pdf
ETD

2
Спасибо, но я получил действительно любопытство и сам реализовал формулу Эло :).
Akavall

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

для рейтингов местных клубов вся сложность elo glicko, что бы ни собирались добавить никакой реальной выгоды
yobamamama

6

Кажется, что наша система ранжирования для спортивных игр, игр и многого другого соответствует вашим потребностям.

Оно бесплатное и предназначено для управления рейтингамистатистикой , включая статистику матчей и т. Д.) Для небольших и больших групп игроков.

Rankade не использует Elo , но его алгоритм (так называемый алгоритм Ree ), хотя и более сложный (вот сравнение между наиболее известными рейтинговыми системами, включая Elo , Glicko и TrueSkill ), похож на Elo, если вы играете в матчах 1 на 1 только.


2
очень классное веб-приложение!
Андрас

1
Я попробовал это, и это, кажется, соответствует моим потребностям; Простой, чистый, может добавить игроков после начала матча. Я хотел бы предложить, чтобы позволить пользователю настраивать CSS. Только что предоставил пользователю текстовую область (или contenteditable div) для вставки своих CSS
Coisox

4

Я только что скачал и поиграл с легковесной бесплатной программой для Windows под названием ELORater, которая, кажется, обеспечивает то, что вам нужно. Вы можете создать «группу» для своего клуба, а затем добавить игроков в группу вместе с любым начальным рейтингом, который вы хотите, чтобы они имели. Затем вы можете просто ввести результаты любых игр, в которые вы играете, и программа поддерживает обновленный список рейтингов игроков для вас.


это все еще онлайн?
Обри




0

http://elorankings.com

Позволяет создавать собственные рейтинги Эло и контролировать определенные параметры. В основном используется сообществами видеоигр, но может использоваться для создания рейтингов и управления рейтингами Эло для чего угодно. Очень прост в использовании. Сохраняет полную историю матчей и позволяет вам индивидуально просматривать историю игроков, WL и то, как их счет менялся за матч. Я использую его для турнира, который я провожу каждую неделю: http://elorankings.com/rankings.aspx?id=1


Сайт, кажется, не работает или больше не работает
andrewb


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.