Gibt es eine Software oder einen Webservice für Elo-Bewertungen auf Clubebene?

15

Gibt es eine Software (oder einen webbasierten Dienst), mit der Sie die lokalen Elo-Bewertungen auf Clubebene verfolgen können?

Diese Bewertungen hätten keinen Zusammenhang mit offiziellen Elo-Bewertungen, es wäre nur eine Elo-Bewertung innerhalb des Universums von Spielern in einem Verein (dh Spiele in verschiedenen sozialen Turnieren würden die Bewertung berechnen).

Pep
quelle
2
Das ist eine interessante Idee für ein Projekt.
Eve Freeman

Antworten:

9

Auch wenn es nicht verfügbar ist, ist es nicht allzu schwer, sich selbst umzusetzen. Hier ist ein Beispiel mit einem extrem dummen und einfachen Bewertungssystem, das Ihnen nur eine Idee geben soll. Aber ich denke nicht, dass es so viel schwieriger ist, die tatsächliche Elo-Formel zu verwenden.

EDIT: ich meine Implementierung bearbeiten Elo Formel verwenden (ohne Boden) gegeben durch die Formel hier

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)

Das funktioniert wie folgt:

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

Hier ist meine ursprüngliche Python-Implementierung:

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

Das funktioniert wie folgt:

>>> 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
quelle
Ich denke, Elo ist möglicherweise genauso einfach. :)
Eve Freeman
Nett. Wenn das OP dies beispielsweise mit dem tatsächlichen USCF-Bewertungsalgorithmus ändern wollte, sind die mathematischen Details in Abschnitt 2 dieses Dokuments verfügbar: glicko.net/ratings/rating.system.pdf
ETD
2
Danke, aber ich habe wirklich Neugierde bekommen und die Elo-Formel selbst implementiert :).
Akavall
Für ein kleines Universum wie einen Schachclub halte ich es für das Beste, dass es keine Floors gibt, sonst würde man schnell Inflation bekommen, wenn sehr schwache Spieler viel spielen.
Pep
6

Es scheint, dass Rankade , unser Ranking-System für Sport, Spiele und mehr, Ihren Bedürfnissen entspricht.

Es ist kostenlos und dient zum Verwalten von Ranglisten (und Statistiken , einschließlich Matchup-Statistiken und mehr) für kleine bis große Gruppen von Spielern.

Rankade verwendet Elo nicht , aber sein Algorithmus ( Ree- Algorithmus genannt) ähnelt Elo , wenngleich komplexer (hier ein Vergleich zwischen den bekanntesten Bewertungssystemen, einschließlich Elo , Glicko und TrueSkill ), wenn Sie 1-gegen-1-Spiele spielen nur.

Tomaso Neri
quelle
2
sehr coole webapp!
andras
Ich habe es versucht und es scheint meinen Bedürfnissen zu entsprechen; Einfach, sauber, kann Spieler hinzufügen, nachdem ein Match begonnen hat. Ich möchte vorschlagen, dass Benutzer benutzerdefiniertes CSS zulassen.
Soeben wurde dem
4

Ich habe gerade ein leichtes Freeware- Produkt für Windows namens ELORater heruntergeladen und damit herumgespielt , das genau das zu bieten scheint, wonach Sie suchen . Sie können eine "Gruppe" für Ihren Verein erstellen und dann Spieler zur Gruppe hinzufügen, zusammen mit den anfänglichen Bewertungen, die Sie für sie wünschen. Dann können Sie einfach die Ergebnisse aller gespielten Spiele eingeben und das Programm führt eine aktualisierte Liste der Spielerbewertungen für Sie.

ETD
quelle
ist es noch online
Aubrey
2

Wenn noch jemand nach so etwas sucht, habe ich hier ein ziemlich einfaches erstellt: https://github.com/richardadalton/EloRate

Im Moment müssen Sie es selbst hosten, aber ich biete möglicherweise in Zukunft einen gehosteten Service an.

-Rd

Richard Dalton
quelle
1

Ich habe vor kurzem https://sortmatch.ca dafür erstellt. Es wird Glicko2 anstelle von Elo verwendet, der Effekt ist jedoch in etwa gleichwertig.

Brad Beattie
quelle
0

http://elorankings.com

Ermöglicht es Ihnen, benutzerdefinierte Elo-Rankings zu erstellen und bestimmte Parameter zu steuern. Wird meistens von Videospiel-Communities verwendet, kann aber verwendet werden, um Ranglisten zu erstellen und Elobewertungen für alles zu verwalten. Sehr einfach zu bedienen. Behält den vollständigen Spielverlauf bei und ermöglicht es Ihnen, den Verlauf eines Spielers, die Gesamtpunktzahl und die Änderung seiner Punktzahl pro Spiel einzeln anzuzeigen. Ich benutze es für ein Super-Turnier, das ich jede Woche veranstalte: http://elorankings.com/rankings.aspx?id=1

David Shears
quelle
Die Seite scheint nicht mehr zu
funktionieren