¿Existe algún software o servicio web para las clasificaciones Elo a nivel de club?

19

¿Existe algún software (o servicio basado en la web) que le permita realizar un seguimiento de las calificaciones locales de Elo a nivel de club?

Estas clasificaciones no tendrían ninguna conexión con las clasificaciones oficiales de Elo, sería solo una clasificación de Elo dentro del universo de jugadores en un club (es decir, los juegos en varios torneos sociales se calcularían para la clasificación).

Energía
fuente
2
Esa es una idea interesante para un proyecto.
Eve Freeman
Lo hice a mano para nuestro club local. Casi tan fácil como ingresar datos en un programa para hacer el trabajo.
yobamamama

Respuestas:

10

Incluso si no está disponible, algo como esto no es demasiado difícil de implementar. Aquí hay un ejemplo con un sistema de calificación extremadamente tonto y simple que solo tiene la intención de darle una idea. Pero no creo que usar la fórmula Elo real sea mucho más difícil.

EDITAR: edito mi implementación para usar la fórmula Elo (sin incluir pisos) dada por la fórmula aquí

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)

Esto funciona de la siguiente manera:

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

Aquí está mi implementación original 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

Esto funciona de la siguiente manera:

>>> 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
fuente
Creo que Elo es posiblemente tan simple como eso. :)
Eve Freeman
Agradable. Si el OP quería modificar esto con, digamos, el algoritmo de calificación real de USCF, los detalles matemáticos están disponibles en la Sección 2 de este documento: glicko.net/ratings/rating.system.pdf
ETD
2
Gracias, pero tuve mucha curiosidad e implementé la fórmula Elo yo mismo :).
Akavall
Para un universo pequeño como el club de ajedrez, creo que es mejor que no haya pisos, de lo contrario, pronto se inflará si los jugadores muy débiles juegan mucho.
Pep
para las calificaciones de los clubes locales, toda la complejidad de Elo Glicko, lo que sea, simplemente no agregará ningún beneficio real
yobamamama
6

Parece que rankade , nuestro sistema de clasificación para deportes, juegos y más, se adapta a tus necesidades.

Es de uso gratuito y está diseñado para administrar clasificaciones (y estadísticas , incluidas estadísticas de enfrentamientos y más) para grupos de jugadores pequeños a grandes.

Rankade no usa Elo , pero su algoritmo (llamado algoritmo ree ), aunque más complejo (aquí hay una comparación entre el sistema de calificación más conocido, incluidos Elo , Glicko y TrueSkill ), es similar a Elo si juegas partidas 1 a 1 solamente.

Tomaso Neri
fuente
2
webapp muy guay!
andras
1
Lo he probado y parece satisfacer mis necesidades; Simple, limpio, puede agregar jugadores después de que haya comenzado un partido. Me gustaría sugerir que permita al usuario personalizar CSS. Acabo de poner a disposición un área de texto (o div contenteditable) para que el usuario pegue su CSS
Coisox
4

Acabo de descargar y jugar con un elemento de software gratuito ligero para Windows llamado ELORater que parece proporcionar lo que buscas. Puede crear un "grupo" para su club y luego agregar jugadores al grupo, junto con las clasificaciones iniciales que desee que tengan. Luego puede ingresar los resultados de cualquier juego que se juegue y el programa mantiene una lista actualizada de clasificaciones de jugadores para usted.

ETD
fuente
¿sigue en línea?
Aubrey
2

Si alguien todavía está buscando algo como esto, he creado uno bastante simple aquí: https://github.com/richardadalton/EloRate

Por el momento, tendrá que alojarlo usted mismo, pero puedo ofrecerle un servicio alojado en el futuro.

-Rd

Richard Dalton
fuente
1

Recientemente construí https://sortmatch.ca para hacer este tipo de cosas. Utiliza Glicko2 en lugar de Elo, pero el efecto es más o menos equivalente.

Brad Beattie
fuente
0

http://elorankings.com

Le permite crear clasificaciones de elo personalizadas y controlar ciertos parámetros. Principalmente utilizado por comunidades de videojuegos, pero se puede hacer para crear clasificaciones y administrar clasificaciones de elo para cualquier cosa. Muy facil de usar. Mantiene el historial completo del partido y le permite ver individualmente el historial de un jugador, WL y cómo cambiaron sus puntajes por partido. Lo uso para un gran torneo que corro todas las semanas: http://elorankings.com/rankings.aspx?id=1

David Shears
fuente
El sitio parece estar inactivo o ya no está en vivo
andrewb