Existe-t-il un logiciel ou un service Web pour les classements Elo au niveau du club?


19

Existe-t-il un logiciel (ou un service Web) qui vous permet de suivre les classements Elo locaux au niveau du club?

Ces classements n'auraient aucun lien avec les classements Elo officiels, il s'agirait simplement d'un classement Elo dans l'univers des joueurs d'un club (c'est-à-dire que les matchs de divers tournois sociaux seraient calculés pour le classement).


2
C'est une idée intéressante pour un projet.
Eve Freeman

Je l'ai fait à la main pour notre club local. Presque aussi simple que d'entrer des données dans un programme pour faire le travail.
yobamamama

Réponses:


10

Même s'il n'est pas disponible, quelque chose comme ça n'est pas trop difficile à mettre en œuvre vous-même. Voici un exemple avec un système de notation extrêmement stupide et simple qui est juste destiné à vous donner une idée. Mais je ne pense pas que l'utilisation de la vraie formule Elo soit beaucoup plus difficile.

MODIFIER: je modifie mon implémentation pour utiliser la formule Elo (sans les sols) donnée par la formule ici

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)

Cela fonctionne comme suit:

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

Voici mon implémentation originale de 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

Cela fonctionne comme suit:

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

Je pense qu'Elo est peut-être aussi simple que cela. :)
Eve Freeman

Agréable. Si l'OP voulait modifier cela avec, disons, l'algorithme de notation USCF réel, les détails mathématiques sont disponibles dans la section 2 de ce document: glicko.net/ratings/rating.system.pdf
ETD

2
Merci, mais j'ai eu beaucoup de curiosité et j'ai implémenté la formule Elo moi-même :).
Akavall

Pour un petit univers tel que le club d'échecs, je pense qu'il vaut mieux qu'il n'y ait pas d'étages, sinon vous obtiendriez rapidement de l'inflation si des joueurs très faibles jouent beaucoup.
Pep

pour les classements des clubs locaux, toute la complexité d'elo glicko, tout ce qui ne va tout simplement pas ajouter de réels avantages
yobamamama

6

Il semble que Rankade , notre système de classement pour les sports, les jeux et plus encore, réponde à vos besoins.

Son utilisation est gratuite et il est conçu pour gérer les classements (et les statistiques , y compris les statistiques de match, et plus) pour les petits et les grands groupes de joueurs.

Rankade n'utilise pas Elo , mais son algorithme (appelé REE algorithme), bien plus complexe (voici une comparaison entre la plupart des systèmes de notation connu, y compris Elo , Glicko et TrueSkill ), est similaire à Elo si vous jouez 1-on-1 matchs seulement.


2
webapp très cool!
andras

1
Je l'ai essayé et il semble répondre à mes besoins; Simple, propre, peut ajouter des joueurs après le début d'un match. Je voudrais suggérer que permettre à l'utilisateur de CSS personnalisé. Vient de mettre à disposition une zone de texte (ou div contentable) pour que l'utilisateur puisse coller son CSS
Coisox

4

Je viens de télécharger et de jouer avec un élément gratuit léger pour Windows appelé ELORater qui semble fournir ce que vous recherchez. Vous pouvez créer un "groupe" pour votre club, puis ajouter des joueurs au groupe, avec les notes initiales que vous souhaitez qu'ils aient. Ensuite, vous pouvez simplement entrer les résultats de tous les jeux auxquels vous jouez et le programme maintient une liste mise à jour des notes des joueurs pour vous.


est-il toujours en ligne?
Aubrey




0

http://elorankings.com

Vous permet de créer des classements elo personnalisés et de contrôler certains paramètres. Surtout utilisé par les communautés de jeux vidéo mais peut être fait pour créer des classements et gérer les classements elo pour tout. Très simple d'utilisation. Conserve l'historique complet des matchs et vous permet de voir individuellement l'historique des joueurs, la WL et l'évolution de leur score par match. Je l'utilise pour un tournoi smash que je lance chaque semaine: http://elorankings.com/rankings.aspx?id=1


Le site semble être en panne ou ne plus vivre
andrewb


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.