ただの日記にタイトルなんて要るか

🍳が不定期で日記を書くらしい

04 Sep 2021

わくわく趣味進捗

ぷよ WACCA
2008文字

ちまちまぴいちょんと戯れています。前から実はひっそりと公開していた(そして今もひっそりと公開し続けている)ぴいちょんでWACCAのレート対象曲一覧を出力できるツールがやっとReverseに対応しました1。遅くなってすまんね。

今まではバージョンをS, L, Rの一文字で管理していたので、まさかの新バージョンReverseが頭文字被りとかいう事実に密かにキレていたりしましたが、対応が遅れていたのは別の理由があってです。というのも、通称「別日追加inf」と呼んでいるんですけれども。

たとえばQuonは稼働開始収録曲ですが、infernoが追加されたのはWACCA Lilyです。このinfernoは他の難易度と追加バージョンが異なることになりますが、なんとWACCAさんこのバージョンの違いをしっかりレートに反映させているそう。Reverseなら、HELL FLAMEにinfernoが追加されたので、この曲のexpertは旧枠、infernoは新枠対象曲としてレート計算がされることになります。今はこれら含めて5曲別日追加infが存在するのかな?これへの対応が想像以上に面倒くさかった。

前提として、既存の定数データcsvを可能な限り変更したくない。一番手っ取り早いのは全難易度一律でバージョンのデータをcsvに保存しておくことですが、これはあんまりやりたくない。そもそもたった5曲のために全曲データ弄る必要ある???になってしまう。というわけで一度思いついたのは「別日追加infはcsv上では別の楽曲かのように記録しておく」でした。なにかというと、

title,version,genre,h_const,e_const,i_const
Quon,S,to,10.6,12.8,NA
Quon,L,to,NA,NA,13.9

と定数データを2行に分けて書いておいて、コード側で上手く読み込めばいいのでは?と思ったわけです。ところがどっこい。現状ぴいちょんコード上ではcsvの各行をlistにしてべしべし読み込んでいるわけですが、これとスコアに対して同様に作ったlistとからレーティング値を計算する時に、定数listとスコアlistの対応が1対1ではなくなってしまいます。なにかというと、少なくともinf譜面のスコアが存在する場合には、定数list上に対応する楽曲の要素が1つあるのか2つあるのかわからないのでその分追加で探索しないといけないという。うわあやりたくねえ。じゃあめんどくさいから各曲全探索します?うおおおおやりたくねえええ。ので別の手段で対応しました。結局csvをそれなりにいじる羽目になっちゃったんですけど、i_versionという要素を追加してinfのバージョンが同じかどうかを覚えておくようにしました。

title,version,genre,h_const,e_const,i_const,i_version
Quon,S,to,10.6,12.8,13.9,L
eden,R,to,10.5,13.3,14.1,R

例としてedenさんにも出てきてもらいました。あとはよしなに読み込んでやれば、for文ぐるぐる処理の構造自体はそこまでいじらなくてもなんとか対応できるようになりました。

これ日記書きながら思ってたんですけど、csv読み込むところをめんどくさがらずに曲タイトルをkey、それ以外の要素をtapleでvalueに突っ込んだ辞書型を準備すれば一発だったのでは???になっています。そうだね1対1対応守れる気がするねこれなら。新しめのぴいちょんだとちゃんと順序保ってくれるらしいですし。また対応し直しですか……気が向けば……2


久しぶりにおおおで飯を食いました。

凌駕のラーメン、何ヶ月ぶりだろう。ボリュームがよいので、お腹ががっつり空いてるときはまたここに来てもいいかもしれません。つけ麺派ではあるのだけれど、もやしもそれはそれで美味しいので。


  1. WACCAプレイヤーにぴいちょん環境構築を強いるというとんでもない代物なので、大々的に告知をするのは避けています。もし知人に需要がありそうかつ使えそうな方がいたら、口コミで広げてもらう分には全然大丈夫です。一応可能な範囲で「他人でも読めるコード」を目指して書いているので、何かしらレビューらしきことをしてくれる物好きさんが見つかるとうれしかったりする。 ↩︎

  2. 実は気が向く可能性は高いです。今の定数データcsvは一種の秘伝のタレ的な何かと化していて、あれの順序を保ったままレート計算をすると公式マイページの対象曲一覧の順序と一致するという素敵仕様があったりするのです。が、別日追加infの対応がこれを保てない形になってしまったので、おいおい修正する気がします。まあ読み込み部分だけだし。 ↩︎