きのここ通信

ポケモントレーナーのチラシ裏

オフで使うKP集計ツールを自作してみた話

皆さんこんにちは、フーと申します。
 
普段は三矢オフの主催をやったりポケットモンスターSVのシングルバトルに勤しむ傍らで、「IT未経験」「私立文系学部卒」という一部の人が聞いたら卒倒しそうなシステムエンジニアをやっています。
 
今回はかねてよりコソコソ作成していたポケモンのKP集計ツールが何とか形になったのでお話しさせていただきます。
年賀状のイラスト「緑へびさん・巳年」
Python」と言われても未だにヘビの方が脳裏によぎります(ヘビ苦手な方もいそうなので写真はいらすとやで代用)
 
【開発背景】
 
三矢オフは地方の泡沫のオフです。人的リソースも主催のノウハウも全く足りていません。
そんな中でいかに楽をするか、それは毎回行う作業を短縮することです。IT化による自動化、効率化でオフ運営にソリューションをもたらします。
 
…とそれっぽい事を書きましたが、Pythonのお勉強がてら作ってみようかなというふとした思い付きで始めました。
 
 
【環境】
 
・Python3.11.9
 
PythonのバージョンはMicrosoft Storeで何も考えずに入れたらこれになってました。特に意図はないです。
 
【機能】
 
Excelシートから参加者名、PTを取得
対象シートをDataframe(以下df)として取得情報を格納し、加工します。
Dataframeとは二次元のデータ構造です。下の2枚目の画像では、取り込んだエクセルのA1の値(フー)が0行目の0列目の値になっています。

・KPをカウント
先ほど作成したdfをリストに変換し、数を集計します。集計結果はポケモン名とKPをカラムとしてExcelに出力します。

 
Excelシートのポケモン名から画像を取得(調整中)
予めポケモン名と画像ファイルのパスを対応させておき、その中から画像を別フォルダに出力してくれます。これにより配信時にPT画像を用意するのが少しだけ楽になります。
事前にパスと名前を対応させておらず取得できなかったポケモン名をお知らせしてくれる機能も実装したのですが、ここが今現在上手く機能してくれていないので調整中です。
 

 

 
【今後の改善案】
 
・実行方法の改善
バッチやGUIを作るノウハウが無いので今はVScodeからペチペチF5で実行しています。流石にみっともないので第一の改良候補です。
 
・TOPCUTの集計
せっかく参加者名とPTを集計したdfを作っているので、予選抜け参加者を入力すると勝手にTOPCUT率(そのポケモンの何%が予選抜けしているか)を出してくれる機能を実装したいです。
 
 
【最後に】
 
他所からもっとつよつよツールが来たらそっちにあっさり乗り換えそうですが、一旦自分で作ってみて苦労とか感覚が分かったのでやってよかったなと思いました。第1回の三矢オフではおでんさんが作成されたツールをお借りしていたのですが、それに比べると稚拙でまだまだだなぁという感じです。
IT有識者の方、突っ込みどころあればぜひ教えてください。
就活が控えている情報系の大学生のみなさんへ。こんな私でも一応雇っていただけてるので就活はあまりビビりすぎなくて大丈夫だと思います。あなたの方がスキルあります。自信持って就活に臨んでください。

 

誤字脱字発見した方や、レビューしてやるからソースコード見せろという方はTwitter(@Darekapoke)までお願いします。