Existe algum software ou serviço da web para classificações do Elo em nível de clube?

19

Existe algum software (ou serviço baseado na Web) que permita acompanhar as classificações locais do Elo em nível de clube?

Essas classificações não teriam nenhuma conexão com as classificações oficiais do Elo, seriam apenas uma classificação do Elo no universo de jogadores de um clube (ou seja, jogos em vários torneios sociais seriam computados para a classificação).

Pep
fonte
2
Essa é uma ideia interessante para um projeto.
Eve Freeman
Fiz isso manualmente para o nosso clube local. Quase tão fácil quanto inserir dados em um programa para fazer o trabalho.
yobamamama 9/01

Respostas:

10

Mesmo que não esteja disponível, algo assim não é muito difícil de implementar. Aqui está um exemplo com um sistema de classificação extremamente bobo e simples que serve apenas para lhe dar uma idéia. Mas eu não acho isso usando a fórmula Elo real muito mais difícil.

EDIT: edito minha implementação para usar a fórmula Elo (sem incluir pisos) fornecida pela fórmula aqui

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)

Isso funciona da seguinte maneira:

>>> 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

Aqui está minha implementação python original:

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

Isso funciona da seguinte maneira:

>>> 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  
Akavall
fonte
Eu acho que Elo é possivelmente tão simples quanto isso. :)
Eve Freeman
Agradável. Se o OP quis modificar isso com, digamos, o algoritmo de classificação atual da USCF, os detalhes matemáticos estão disponíveis na Seção 2 deste documento: glicko.net/ratings/rating.system.pdf
ETD
2
Obrigado, mas fiquei muito curioso e implementei a fórmula Elo :).
Akavall 25/09/12
Para um universo pequeno, como o clube de xadrez, acho melhor não haver pisos, caso contrário você receberia inflação em breve se jogadores muito fracos jogarem muito.
Pep
para classificações de clubes locais, toda a complexidade de elo glicko, o que quer que seja, não trará nenhum benefício real
yobamamama
6

Parece que rankade , nosso sistema de classificação para esportes, jogos e muito mais, se adapta às suas necessidades.

É de uso gratuito e foi projetado para gerenciar classificações (e estatísticas , incluindo estatísticas de confronto e muito mais) para pequenos e grandes grupos de jogadores.

Não Rankade não usar Elo , mas seu algoritmo (chamado ree algoritmo), embora mais complexo (aqui está uma comparação entre a maioria sistema de classificação conhecido, incluindo Elo , Glicko e TrueSkill ), é semelhante a Elo se você jogar 1-on-1 partidas só.

Tomaso Neri
fonte
2
webapp muito legal!
18715
11
Eu tentei e parece atender às minhas necessidades; Simples, limpo, pode adicionar jogadores após o início de uma partida. Gostaria de sugerir que permita ao usuário CSS personalizado. Acabei de disponibilizar uma área de texto (ou div
editável
4

Acabei de baixar e brincar com um item de freeware leve para Windows chamado ELORater que parece fornecer o que você procura . Você pode criar um "grupo" para o seu clube e adicionar jogadores ao grupo, juntamente com as classificações iniciais que você deseja que eles tenham. Depois, basta inserir os resultados de qualquer jogo que seja jogado e o programa manterá uma lista atualizada de classificações de jogadores para você.

ETD
fonte
ainda está online?
Aubrey
2

Se alguém ainda estiver procurando por algo assim, criei uma bem simples aqui: https://github.com/richardadalton/EloRate

No momento, você precisará hospedá-lo, mas posso oferecer um serviço hospedado no futuro.

-Rd

Richard Dalton
fonte
1

Recentemente, criei https://sortmatch.ca para fazer esse tipo de coisa. Ele usa Glicko2 em vez de Elo, mas o efeito é aproximadamente equivalente.

Brad Beattie
fonte
0

http://elorankings.com

Permite criar classificações elo personalizadas e controlar certos parâmetros. Usado principalmente por comunidades de videogame, mas pode ser feito para criar classificações e gerenciar classificações de elo para qualquer coisa. Muito fácil de usar. Mantém o histórico completo das partidas e permite que você veja individualmente a história dos jogadores, WL e como a pontuação deles foi alterada por partida. Eu o uso em um torneio de sucesso que corro toda semana: http://elorankings.com/rankings.aspx?id=1

David Shears
fonte
Local parece estar em baixo ou não viver mais
andrewb