見出し画像

スプラトゥーン2が面白すぎて上手くなりたい男のデータ分析(1)

お久しぶりです。

僕がスプラトゥーン2で遊んでいる間にいつの間にかnoteでコードを書けるようになったんですね。とてもうれしいです。

今回はスプラトゥーン2の話です。もしかしたら何回か続くかもしれません。スプラトゥーン2はいわゆるTPSと呼ばれるゲームですが基本的なルールが変わっています。相手を銃で撃つのは普通のTPSと変わらないのですが、地面を塗ることで有利に立ち回ることができ、そのまま勝敗に直結するので、撃ち合いのゲームが苦手な人でも楽しめる仕様になっています。

ところでスプラトゥーン2と連動するイカリング2をご存知でしょうか。これは僕もゲームを始めてから知ったんですが、Nintendoが出している公式アプリで利用することができます。今後行われる対戦のルールやステージを先に見ることができるほか、普段とは違う装備を買うことができたりと非常に重宝しています。

しかし、イカリング2のすごいところは自分の成績が記録されていくところです。最近50戦の成績が見てわかるのでとても面白いです。こんなもの作ってるなんてNintendoさすがだなとしか言いようがありません。ありがとう、Nintendo。。

せっかくイカリング2で成績が見れるようになっていたので、データを取ってみました。50戦分保存されるので、一日一回くらいExcelに打ち込めば済みます。皆さんもやってみましょう。

自分が始めたばかりなのもあって、どうやったら勝てるのかに非常に興味があります。とりあえず相手を倒した数(キル数)が勝敗に影響しそうなので、散布図を描いてみましょう。イカリング2で得られるキル数は少しでもダメージを与えた相手も含むので、純粋なキル数ではありません。これはアシスト数としてもカウントされているので、キル数からは引いておきます。Rだとこんな感じです。

data = read.csv(file="data/splatoon.csv", header=TRUE)
kill = data$キル数 - data$アシスト数
data = cbind(data, kill)
plot(x=data$kill, y=data$勝敗, main="キル数と勝敗")

できた散布図はこんな感じです。だいぶそっけないです。

ちなみに1が負けで、2が勝ちです。これだけ見るとキル数をたくさん取ってもあまり勝てていないように思えます。そこで、デス数(やられた回数)も評価の基準に入れてみましょう。キルレートという指標があります。

キルレート=キル数/デス数

と表せる指標で、一回やられるまでに何人倒せるかとなっています。まずはキルレートを計算して、また散布図を描いてみましょう。

killrate = kill / data$デス数
data = cbind(data,killrate)
plot(data$killrate, data$勝敗,
    xlab="killrate",
    ylab="勝敗",
    main="キルレートと勝敗の関係")

見た感じ、さっきよりも関係がありそうです。特に、負け試合はキルレートが0から1に集中しているようにみえます。そこで、データをキルレート1以上のものに制限してみましょう。すると次のようになります。

data.k1 = data[data$killrate >= 1,] 
plot(data.k1$killrate, data.k1$勝敗,
    xlab="killrate",
    ylab="勝敗",
    main="キルレート1以上における勝敗")

さっきよりもはっきり分かるようになりました。明らかにキルレートが高い方が勝っています。ではキルレートが1以上だとどれくらい勝率が変わるのでしょうか。制限しない場合と、制限した場合の勝率を求め、その差をみることで大まかな違いを見ることができます。

winrate = length(data[data$勝敗 == "win",1])/length(data[,1])
winrate
[1] 0.4878049
winrate.k1 = length(data.k1[data.k1$勝敗 == "win",1])
                        / length(data.k1[,1])
winrate.k1
[1] 0.6129032
winrate.k1 - winrate
[1] 0.1250983

はじめに求めている勝率が全体を通しての勝率で、約5割ですね。そしてその次の勝率がキルレートが1以上の試合の勝率です。6割越えしているので、その差は1割を超えます。つまり、キルレートが高くなれば、勝てる可能性が1割以上あがることになります。

そりゃ、一回やられるまでに1人以上倒せば勝てる可能性が高まるのは誰でもわかると思いますが、どのくらい勝てるようになるのか分かれば、より現実感をもって努力できると思うんですよね。

てことで、まずはやられないように頑張ってきます。というか上手い人教えてください、、、


Twitterもやっているので、是非!noteの更新情報など呟いています。

ではまた!

最後まで読んでいただきありがとうございました!サポートしてくれると非常に嬉しく、noteを書くモチベーションになります。