タイトルって難しい。

学力も体力もない人間の雑記帳。

スクフェスのタイマーをつくりたい(Rでスクフェス第2回)

こんばんは、今年もあとわずか。みなさんいかがお過ごしでしょうか。私は、今実家に帰ってきております。

この話はRでスクフェスシリーズの第2回です。
前回は~枚取りの割合に対する線形傾向の有無を調べました。今回は、ちょっとぶっとんで、実際にプレイする人向けに通知する手段はないか考えてみました。

なにがしたいのか?

やりたいことは1つ。スクフェスのタイマーを実装したい。しかもRで。
いやPHPなりPythonなりでやりなさいよって全くその通りなんですけど。

実装するにあたっての流れ&やったこと

実装するにあたり、簡単な流れを書き出します。

1.RankからLPを算出
2.LP全回復を前提とした回復までの時間計算
3.計算した時間後に通知

RankからLP算出については、規則があるみたいなので、それに従って書いてみました。

LPcalc <- function(x){
  # x is the rank
  if (x <300){
    if (x %% 2 != 0){
      x = x - 1
    }
    LP = x / 2 + 25
  }
  else{
    x = x - 300
    if( x %% 3 == 1){
      x = x - 1
    }
    else if( x %% 3 == 2){
      x = x - 2
    }
    LP = x / 3 + 175
  }
  return (LP)
}

上記のソースは、rankからLPを算出する関数です。

次に全回復するまでの時間計算です。

cureTime <- function(x){
  # x is the LP
  time = x * 6
  hour = time %/% 60
  min = time - hour * 60
  timesec = x * 360
  #cat(hour,"時間", min, "分後です \n")
  return(timesec)
}

上記ソース内下部のコメントアウトを解除すると何時間何分後っていうのが出力されます。
さて、これらを複合すると以下のようになりますね。

SCFEStimer <- function(n){
  x = LPcalc(n)
  t = cureTime(x)
  #func_notification(t)
}

func_notificationにあたるなにかが必要なのです。さてどうしましょうか・・・。

Rで通知するに当たって有用な資料として、dichika大先生のスライドがあります。
この中で、作成されたYoを用いた通知を行うパッケージの話があり、自身の垢に関するAPIを取得すると飛ばせるそうです。(参照)
こちらを承諾いただいたうえで読み込みかけるか、はたまた違う方法を用いるか。悩みどころですね・・・。
他にも意見がありましたら是非よろしくお願いします。パッケージにしてしまおうかと今考えているところです。