これはCAMPHOR- Advent Calendar 2019の7日目の記事です。6日目は@watamboさんの「中目黒のコミュニティスペースCAMPHOR- BASEにみんなおいでヨ!」でした
こんにちは。@asamasです。あさますと読みます。
みんなが「リングフィットアドベンチャー」や「ポケモンソード」などを楽しんでいる中、僕は相も変わらずスプラトゥーン2をプレイしてます。
今回は、スプラトゥーン戦績管理アプリである「ikaWidget2」に記録されているデータを引っこ抜いて、簡単な分析などをしてみようと思います。
.ikax -> .zip
ikaWidget2にはバックアップ機能があり、そこからファイルを出力すると、asamas-20191204-1011.ikax
のようなファイルが作成されます。このファイルは拡張子を変えれば、そのままzipファイルとして読み込めます。
解凍すると、下の写真のように、info.jsonとstats.realmが見つかると思います。戦績データは、stats.realmの中に入っています。
realmファイルの内容をjsonに書き出す
realm studioをインストールします。stats.realmファイルを開いた後、File > Save Data > Jsonで書き出せます。この機能に気づかずに、realm (nodejs) 使おうとしてめちゃくちゃ時間とかしました
戦績データの解析
このデータを使って、自分の苦手ステージを調べてみました。
まずはjsonファイルを取り込みましょう
# -*- coding: utf-8 -*-
import json
with open("results.json","r",encoding="utf-8") as f:
result_json=json.load(f)
ルールごとの違いを調べます。下の例ではガチエリア(splat_zonesgachi
)を調べています。ガチホコを調べたいときはrainmakergachi
、ガチヤグラはtower_controlgachi
、ガチアサリはclam_blitzgachi
に変更してください。
area_result={}
for item in result_json["Result"]:
if item["udemae"]<9 and item["game"]!="splat_zonesgachi": #S以上の戦績に限定&ガチエリア以外のルールを排除
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"]))
結果はこのようになりました。
ガチエリア
ガチヤグラ
ガチホコ
モズク農園やニューオートロがどのルールでも上位に来ています。僕の持ちブキのクーゲルシュライバーで、得意とされているルールですね。一方でザトウ・チョウザメ・ムツゴロウなどの勝率は30~40%ぐらいなので、相性が悪いステージだとわかります。
今後
今回は時間がなくて中途半端な記事になってしまいましたが、ikaWidget2からデータを引っこ抜く方法はわかりましたので、LightGbmなどを使って、より詳しい分析ができたらと思います