¿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).


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  

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.


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.


¿sigue en línea?
Aubrey




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


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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.