[PYTHON] Obtenez les données d'enregistrement de bataille de Splatoon 2 + bonus

Ceci est l'article du 7ème jour du CAMPHOR - Calendrier de l'Avent 2019. Le 6ème jour était @ watambo "Venez à l'espace communautaire Nakameguro CAMPHOR-BASE!"

Bonjour. C'est @asamas. Je l'ai lu comme demain. Alors que tout le monde apprécie "Ring Fit Adventure" et "Pokemon Sword", je joue toujours à Splatoon 2.

Cette fois, j'ai extrait les données enregistrées dans l'application de gestion des enregistrements de combat Splatoon "ikaWidget2" Je vais essayer une analyse simple.

.ikax -> .zip ikaWidget2 a une fonction de sauvegarde, et lorsque vous en sortez un fichier, un fichier comme ʻasamas-20191204-1011.ikax` est créé. Ce fichier peut être lu comme un fichier zip tel quel en changeant l'extension. Après la décompression, vous trouverez info.json et stats.realm comme indiqué dans l'image ci-dessous. Les données d'enregistrement de bataille se trouvent dans stats.realm. コメント 2019-12-06 162516.png

Exporter le contenu du fichier de domaine vers json

Installez realm studio. Après avoir ouvert le fichier stats.realm, vous pouvez l'exporter avec Fichier> Enregistrer les données> Json. ~~ Je n'ai pas remarqué cette fonctionnalité et j'ai passé beaucoup de temps à essayer d'utiliser le royaume (nodejs) ~~

Analyse des données d'enregistrement de bataille

J'ai utilisé ces données pour découvrir à quelle étape je n'étais pas bon. Tout d'abord, importons le fichier json

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

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

Examinez les différences entre les règles. Dans l'exemple ci-dessous, nous examinons la zone de Gachi (splat_zonesgachi). Si vous voulez vérifier Gachihoko, changez-le en rainmakergachi, changez Gachiyagra en tower_controlgachi, et changez Gachiasari en clam_blitzgachi.

area_result={}

for item in result_json["Result"]:
    if item["udemae"]<9 and item["game"]!="splat_zonesgachi": #Limité à S ou record de bataille supérieur&Éliminer les règles autres que la zone de Gachi
        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"]))

Le résultat ressemble à ceci. Région de Gachi コメント 2019-12-06 171637.png Contrôle de la tour コメント 2019-12-06 174034.png Gachihoko コメント 2019-12-06 174206.png

Mozuku Farm et New Autoro sont classés haut dans toutes les règles. C'est une règle dans laquelle je suis bon dans mon propre Kugel Schreiber. En revanche, le taux de victoire de Zato, Chozame, Mutsugoro, etc. est d'environ 30 à 40%, donc vous pouvez voir que c'est une étape qui n'est pas compatible.

à partir de maintenant

Cette fois, c'était un article à moitié fini par manque de temps, mais maintenant que je sais comment extraire des données d'ikaWidget2, j'aimerais utiliser LightGbm etc. pour une analyse plus détaillée.

Recommended Posts

Obtenez les données d'enregistrement de bataille de Splatoon 2 + bonus
Obtenez des données compressées par Gzip en mémoire
Obtenir les données structurelles de CHEMBLID
Obtenez des données Youtube avec python