[PYTHON] Holen Sie sich die Schlachtrekorddaten von Splatoon 2 + Bonus

Dies ist der Artikel zum 7. Tag von CAMPHOR-Adventskalender 2019. Der 6. Tag war @ watambos "Komm in den Nakameguro Community Space CAMPHOR-BASE!"

Hallo. Es ist @asamas. Ich habe es als morgen gelesen. Während alle "Ring Fit Adventure" und "Pokemon Sword" genießen, spiele ich immer noch Splatoon 2.

Dieses Mal habe ich die in der Splatoon Battle Record Management-Anwendung "ikaWidget2" aufgezeichneten Daten herausgezogen. Ich werde eine einfache Analyse versuchen.

.ikax -> .zip ikaWidget2 verfügt über eine Sicherungsfunktion. Wenn Sie eine Datei daraus ausgeben, wird eine Datei wie "asamas-20191204-1011.ikax" erstellt. Diese Datei kann durch Ändern der Erweiterung als Zip-Datei gelesen werden. Nach dem Entpacken finden Sie info.json und stats.realm, wie im Bild unten gezeigt. Die Schlachtrekorddaten befinden sich in stats.realm. コメント 2019-12-06 162516.png

Exportieren Sie den Inhalt der Realm-Datei nach json

Installieren Sie Realm Studio. Nachdem Sie die Datei stats.realm geöffnet haben, können Sie sie mit Datei> Daten speichern> Json exportieren. ~~ Ich habe diese Funktion nicht bemerkt und viel Zeit damit verbracht, Realm (NodeJS) zu verwenden ~~

Analyse von Schlachtrekorddaten

Ich habe diese Daten verwendet, um herauszufinden, in welchem Stadium ich nicht gut war. Importieren wir zunächst die JSON-Datei

# -*- coding: utf-8 -*-
import json

with open("results.json","r",encoding="utf-8") as f:
    result_json=json.load(f)

Untersuchen Sie die Unterschiede zwischen den Regeln. Im folgenden Beispiel betrachten wir den Gachi-Bereich (splat_zonesgachi). Wenn Sie Gachihoko überprüfen möchten, ändern Sie es in "rainmakergachi", ändern Sie Gachiyagra in "garden_controlgachi" und ändern Sie Gachiasari in "clam_blitzgachi".

area_result={}

for item in result_json["Result"]:
    if item["udemae"]<9 and item["game"]!="splat_zonesgachi": #Beschränkt auf S oder höher Kampfrekord&Beseitigen Sie andere Regeln als den Gachi-Bereich
        continue
    for i in result_json["Stage"]:
        if i["ID"]==item["stage"]:
            stage_name=i["name"]
            
    if not stage_name in area_result.keys():
        area_result[stage_name]={"win":0,"lose":0}
    if item["win"]:
        area_result[stage_name]["win"]+=1
    else:
        area_result[stage_name]["lose"]+=1

for key in sorted(area_result.keys(),key = lambda x:area_result[x]["win"]/(area_result[x]["win"] +area_result[x]["lose"]),reverse=True):
    print(key,area_result[key]["win"]/(area_result[key]["win"] +area_result[key]["lose"]))

Das Ergebnis sieht so aus. Gachi Bereich コメント 2019-12-06 171637.png Turmsteuerung コメント 2019-12-06 174034.png Gachihoko コメント 2019-12-06 174206.png

Mozuku Farm und New Autoro haben in allen Regeln einen hohen Stellenwert. Es ist eine Regel, in der ich in meinem eigenen Kugel Schreiber gut bin. Auf der anderen Seite liegt die Gewinnrate von Zato, Chozame, Mutsugoro usw. bei 30-40%, sodass Sie sehen können, dass es sich um eine Stufe handelt, die nicht kompatibel ist.

von jetzt an

Diesmal war es aus Zeitgründen ein halbfertiger Artikel, aber jetzt, da ich weiß, wie man Daten aus ikaWidget2 extrahiert, möchte ich LightGbm usw. für eine detailliertere Analyse verwenden.

Recommended Posts

Holen Sie sich die Schlachtrekorddaten von Splatoon 2 + Bonus
Holen Sie sich Gzip-komprimierte Daten in den Speicher
Strukturdaten von CHEMBLID abrufen
Holen Sie sich Youtube-Daten mit Python