Anwendung zum Erstellen von Leistungsrankings über den Glicko-2-Algorithmus.
Die Grundidee dieser Anwendung besteht darin, Stromrankings zu erstellen. GGSCORE war ursprünglich für den wettbewerbsfähigen Super Smash Bros. -Nahkampf für den Nintendo Gamecube gedacht und kann PRS für jede Wettbewerbsdisziplin erstellen, in der zwei Seiten miteinander konkurrieren. Die Bewertungen werden über den Glicko-2-Algorithmus erstellt.
In dieser Dropbox finden Sie ein Ready-to-Go-Build.
Die allgemeine Idee, dieses Tool zu verwenden, besteht darin, Turniere von Challonge.com zu importieren. Dafür benötigen Sie einen Entwickler-API-Schlüssel aus Ihrem Challonge-Account. Dann müssen die Namen/Aliase der Spieler aus den Sets des Turniers mit Spielern in Verbindung gebracht werden. Sie können entweder einen Alias einem vorhandenen Spieler in Verbindung bringen oder einen neuen erstellen (beim Import des ersten Turniers müssen Sie natürlich alle neuen Spieler erstellen). Die Ergebnisse, bestehend aus Gewinner, Verlierer und Datum des Spiels, werden der Tabelle im "Match-Bericht" -Tab hinzugefügt und können bei Bedarf manuell entfernt (oder hinzugefügt) werden. Sobald Sie Ihre Ergebnisse importiert haben, müssen Sie einen Bewertungszeitraum eingeben. Der Algorithmus wird nur die Ergebnisse berücksichtigen, die innerhalb eines Bewertungszeitraums stattgefunden haben. Es wird empfohlen, einen Spieler in einem Bewertungszeitraum mindestens 10-15 Spiele zu ermöglichen, um das Rating genau zu machen (insbesondere für den ersten Bewertungszeitraum). Wenn der "Match-Bericht" zu geclustert wird, können Sie die "Finalize-Bewertungen" -Option in den "Bewertungszeiten" -Tab (wobei auch die tatsächliche PR angezeigt wird) verwenden können, um die Tabellen zu löschen, die die Ergebnisse und Bewertungszeiträume anzeigen. Dies bedeutet auch, dass Sie jedoch nicht in der Lage sind, Ergebnisse aus den Bewertungszeiträumen zu entfernen/hinzuzufügen, bevor Sie jedoch fertiggestellt werden (somit die Bewertungen bis zu diesem Punkt abschließen). Sie können jedoch die Ergebnisse wie zuvor hinzufügen/entfernen und importieren.
Denken Sie daran, dass nur die Ergebnisse innerhalb eines Bewertungszeitraums zur Berechnung einer Bewertung verwendet werden. Auch alle Ergebnisse innerhalb eines Bewertungszeitraums werden gleichzeitig (nach Definition des Glicko-2-Algorithmus) angesehen. Das heißt, wenn Sie alle Spieler mit den gleichen Startwerten (beabsichtigte Verwendung) erstellen, gibt es nur Übereinstimmungen von Personen mit genau den gleichen Werten. Wenn es also einen PR mit nur einem Bewertungszeitraum gibt und alle Spieler mit 1500 Bewertungspunkten begonnen haben und Sie ein Ergebnis eines (derzeit) 1000-Rating-Spielers gegen einen (derzeit) 2000-Rating-Spieler eingeben, wird die gesamte Berechnung für diesen Zeitraum wiederholt und dieses Ergebnis wird als Spieler mit 1500 Raten gegen einen Spieler mit 1500 Raten einbezogen. In der ersten Periode geht es also mehr darum, eine allgemeine Vorstellung von den Bewertungswerten zu bekommen, und Upsets wird weniger Einfluss haben. Dies ist jedoch wahrscheinlich ein ziemlich häufiges Verhalten für einen Bewertungsalgorithmus. Um dies zu vermeiden, müssten Sie genaue Startwerte liefern, aber der durchschnittliche Benutzer sollte es wahrscheinlich nicht (ich würde nicht).
Diese Anwendung besteht aus zwei Modulen: der Glicko-2-API, die den Glicko-2-Algorithmus und die GUI dem Benutzer liefert, um die API zu verwenden und die Ergebnisse der Berechnungen zu visualisieren. Es assoziiert auch die IDs der Glicko-Spieler mit ihren Aliase.
Die Glicko-2-API besteht aus verschiedenen Klassen, um die erforderlichen Bedingungen für die Anwendung des Algorithmus und natürlich den Algorithmus selbst einzurichten:
Die GUI implementiert die Mittel, mit denen der Benutzer die API verwenden und die Ergebnisse des Algorithmus anzeigt. Es verwaltet auch die Aliase der Spieler und assoziiert sie mit der ID ihres Glicko-CounterPart. Außerdem erzeugt es alle Ergebnisse (unter Verwendung der Glicko-Result-Klasse) und speichert sie zusammen mit dem Datum, an dem sie aufgetreten sind.
Die Glicko-2-API wendet nur den Algorithmus auf vorhandene Spieler an, wobei die Ergebnisse an ihn übergeben werden. Die Bewertungszeiträume werden hier auch implementiert, um die Ergebnisse zu bündeln und sie dem Algorithmus zu geben.
Fortgesetzt werden...
Wenn Sie die Anwendung erstellen, wie aus diesem Repo, wird das Datumsformat dd.mm.yyyyy lautet, die in der Datei GlobalVars.h GlobalVars.H geändert werden können. Das "defaultFormatString" kann unter Verwendung der hier gezeigten Spezifizierer geändert werden. Das Standard -US -Datumsformat lautet "%m/%d/%y" und ein Build kann in der Dropbox gefunden werden.
Das Ändern des Datumsformats kann durchgeführt werden, ohne sich um die Save-Files zu kümmern (hauptsächlich Ergebnisse.JSON, die einzige Spardaten). Die Daten werden immer im ISO 8601-Format gespeichert und nur wie im Wert von DefaultFormatString-Wert angezeigt.
Diese Anwendung verwendet einige APIs, die erstellt und verknüpft werden müssen, bevor Sie dieses Projekt erstellen können. Die benötigten APIs sind WXWIDGETS, JSONCPP und Libcurl (7.62.0 verwendet, aber andere sollten natürlich arbeiten, aber Sie müssen den Pfad in der angegebenen Projektdatei ändern, wenn Sie ihn verwenden möchten). Die mitgelieferten Visual Studio -Projektdateien erfordern die folgende Ordnerstruktur, um die Anwendung erfolgreich zu erstellen:
└── ┐
├── GGScore
│ └── .git
│ └── PR Tool
├── wxWidget
│ ├── lib
│ └── include
├── jsoncpp-master
│ └── dist
└── curl-7.62.0
├── include
└── lib
Diese APIs sind statisch verknüpft, nur die Glicko-2-API ist dynamisch verknüpft (wiederum nur für die mitgelieferte Projektdatei).