Ich baue eine Schach-App mit einem Elo-Bewertungssystem.
Wäre es angemessener, die Bewertung des Spielers basierend auf seiner Bewertung zu Beginn des Spiels oder seiner Bewertung am Ende des Spiels zu aktualisieren?
Zum Beispiel spielt Spieler A (1600) gegen Spieler B (1700), und es dauerte eine Woche, bis das Spiel abgeschlossen war (Fernschach). Während dieser Woche gewann Spieler A einige andere Spiele und ihre Bewertung wurde 1650. Spieler B verlor einige Spiele und ihre Bewertung wurde 1680. Jetzt endet das Spiel zwischen Spieler A und Spieler B.
Sollte ich die Bewertungen so aktualisieren, als ob:
- 1600 gegen 1700 gespielt, oder
- 1650 gegen 1680 bezahlt, oder
- etwas anderes
Was wäre angemessener und warum?
Ich würde Option 2 aus verschiedenen Gründen verwenden. Das vielleicht wichtigste ist das Potenzial für den Missbrauch von Option 1.
Zwei Spieler beginnen im USCF- oder FIDE-System auf dem gleichen Level. Sie spielen ein langes Match mit einem Spieler, der die überwiegende Mehrheit der Punkte erzielt. Letztendlich stabilisieren sich die Bewertungen ungefähr bei dem Verlierer (Start-400) und dem Gewinner (Start + 400).
Unter Option 1 könnte ein 2000-Spieler 100 Spiele gegen einen Freund mit ähnlicher Bewertung starten, alle gewinnen und plötzlich mit 3000+ die Person mit der höchsten Bewertung auf der Website sein. Dies wird unter anderem dazu führen, dass Ihre Website schlecht aussieht. Der Spieler, der verloren hat, fällt unter 1000, aber diese Punkte können leicht zurückgewonnen werden, insbesondere wenn er 100 Spiele gegen 1200 Spieler startet.
Option 2 ist viel stabiler. Es wird von allen wichtigen mir bekannten Korrespondenzseiten verwendet (chess.com, redhotpawn usw.)
Bearbeiten: Weitere Szenarien. Ein 1800-Spieler nimmt die Herausforderung eines 800 an. Einen Monat später ist der ehemalige 800 um 1700 und schlägt den 1800. Wenn der 1800 zurücktritt, verliert er das Maximum und nicht das, was er gegen die wahre Stärke seines Gegners verloren hätte.
Ein 2000-köpfiger Spieler erhält durch schwarze Magie eine Wertung von 1200. Er startet eine Reihe von Spielen gegen 1400er und gewinnt fast alle. Die 1400er werden allgemein enttäuscht sein, wenn sie mehr als 20 Punkte an einen solchen Schurken verlieren müssen.
quelle
Weder ist "richtig". Sie müssen die Auswirkungen einer Strategie berücksichtigen und bestimmen, was für Ihre App richtig ist . Ich persönlich denke , Sie sollten immer planen für Ihre App beliebt zu sein - und wenn es beliebt, die Menschen werden zu Spiel versuchen , was System Sie geschaffen haben. Sie müssen also die Missbrauchsfälle in jedem Szenario sowie die Art und Weise berücksichtigen, wie das System sowohl neuen als auch etablierten Benutzern dient, und entscheiden, welche Faktoren des Systems für Sie am wichtigsten sind.
Natürlich haben Sie in jedem System eine Vielzahl von Optionen für die eigentliche Implementierung, die dazu beitragen können, die unten aufgeführten Faktoren zu verbessern oder zu mildern, aber ich werde all das überspringen, da Sie nicht danach gefragt haben.
Ich denke, die derzeitige Frage ist etwas zu meinungsbasiert, um endgültig beantwortet zu werden. Ich werde hier also nur einige der wichtigsten Punkte jedes Systems darlegen. Wie gesagt, es liegt an Ihnen, zu entscheiden, was für Sie und Ihre Benutzerbasis wichtig ist.
Berechnen mit Startbewertungen
In diesem System ist der Hauptmissbrauchsfall, den Sie sich ansehen müssen, jemand, der hundert Spiele gleichzeitig gegen ein Dummy-Konto (oder mehrere) startet, um alle zu gewinnen und seine Bewertung zu erhöhen. Dies ist ziemlich erkennbar und leicht zu konstruieren (tatsächlich enthält das Elo-System bereits einige Einschränkungen für solche Manipulationen), aber Sie müssen darauf achten.
Der Nachteil dieses Systems ist, dass neue Spieler eine Zeit lang sehr instabile Bewertungen haben und eine Weile brauchen, um ihre wahre Bewertung zu erreichen. Die meisten Systeme lösen dies bereits, indem sie den K-Faktor für neue Spieler erheblich erhöhen , so dass sich ihre Bewertungen für ihre ersten 20-50 Spiele oder so sehr schnell ändern.
Angenommen, Sie haben einen etablierten Spieler mit einer hohen Bewertung (z. B. 1900) gegenüber einem neuen Spieler mit einer niedrigeren vorläufigen Bewertung (z. B. 1200). Wenn die wahre Stärke des neuen Spielers tatsächlich 2000+ beträgt, kann der etablierte Spieler bei einem Verlust (1900 gegen 1200) viel mehr Punkte verlieren, als wenn die Punktzahl anhand der neuesten Punkte berechnet worden wäre. Wenn der neue Spieler nur gegen hoch bewertete Spieler spielt, muss natürlich jemand die Rechnung bezahlen, egal welches System Sie verwenden.
Berechnen mit aktuellen Nennwerten
Im neuesten Bewertungssystem besteht der Hauptmissbrauchsfall wahrscheinlich darin, dass Personen Spiele herausziehen oder vorzeitig zurücktreten, um Einbrüche oder Spitzen in den Bewertungen ihrer oder ihrer Gegner auszunutzen. Zum Beispiel, wenn ich auf einer Pechsträhne bin, so dass ich unter meiner wahren durchschnittlichen Bewertung bin, dieses System gibt mir tatsächlich einen Anreiz , um sofort jedes anderes Spiel zurücktreten , wo ich nicht gewinnen , weil ich weniger verlieren würde Punkte jetzt, indem ich sie alle auf einmal zurücktrete, während meine Bewertung bereits niedrig ist, als wenn ich warten würde, bis sich meine Bewertung erholt hat. Wenn alternativ die Bewertung meines Gegners im Verlauf des Spiels sinkt, habe ich einen starken Anreiz, das Spiel so lange wie möglich zu haltenin Echtzeit, egal ob ich gewinne oder verliere - denn so oder so, wenn sich die Wertung meines Gegners erholt, werde ich besser abschneiden. Diese Art des Spielens des Systems ist viel schwieriger endgültig zu erkennen.
Wie andere bereits betont haben, sind die einzelnen Ergebnisse jedoch genauer, und die Bewertungen der Personen konvergieren daher schneller. Sie werden auch die Wirkung des Spiels eines vorläufigen 1200 gegen ein etabliertes 1900 verringern, obwohl ich persönlich denke, dass dies überhaupt keine große Sache ist - etablierte Spieler interessieren sich meiner Erfahrung nach nicht so sehr für temporäre Bewertungen Verluste wie neuere Spieler.
quelle
Wenn Sie nach dem USCF-System modellieren würden, würden Sie sich Szenario 2 ansehen. 1650 spielte gegen 1680. Ich habe dies selbst im USCF-Bewertungssystem erlebt, in dem ich ein 10-wöchiges Ligaturnier mit der Bewertung von 1953 gespielt habe. Und ich habe einen Mittwoch gespielt Nachtspiel in meiner Gegend um Woche 6 und verlor das Spiel und meine Bewertung wurde 1929. Nach der 10. Woche zeigte meine USCF-Bewertung meinen Anstieg von 1929 => 1995 und nicht 1953 => x und x => y.
quelle
Der richtigste Weg wäre, die Startbewertung zu verwenden. Warum? Da dies die Bewertung war, mit der sie sich bereit erklärt hatten, das Spiel zu beginnen, und sie wussten, was sie gewinnen oder verlieren würden, entschieden sie sich, es zu beginnen, nachdem sie das Risiko gegen die Belohnung bewertet hatten. Daher denke ich, dass die Startwertung beider Spieler die beste Lösung ist.
quelle