柔道抜き戦シミュレーター
こんにちは、4年の堀部です。本日は高輪高校の皆さんと入江さんにお越しいただきました。蒸し暑くこちらの部員も少ないという環境で参加してくださりありがとうございます。元気ある中高生に触発され基立を無事乗り切れました。また稽古後には、中高生の皆さんと受験や学生生活についてお話する機会を得て、交流を取ることができました。
さて今回は、私が前々から思い描いていた「柔道抜き戦シミュレーター」がひとまず形になったのでその開発についてお話ししようと思います。選手のデータを入力すれば最適なオーダーを計算してくれるアルゴリズムがあったら便利では、と思いついたのは昨年末。ひとまずオーダーを入力すれば勝敗を出してくれるように設計しようと思い簡単なコードを書き上げたものの、完成度が低く世には出していませんでした。
そんな中で今年の5月ごろにClaude Code使い始めると、これがもう優秀なのです。ご存じの方も多いかと思われますが、Claude Codeはエージェント型AIと呼ばれる代物の一つです。ここ数年で主流だったチャットに対し返答をするだけのAIと異なり、タスクを提示すれば勝手に判断して、検索やらファイルの作成・編集やら他サービスとの連携やら全て自動でこなしてくれます。最近はそれを利用し非エンジニアでも開発を行えるようになり、バイブコーディングやAI駆動開発(ニュアンスはだいぶ違いますが)などと呼ばれています。
私もNotebookLMやObsidianと連携して学習に役立てたりしていたのですが、先日のオフ期間、凍結していた「柔道抜き戦シミュレーター開発計画」をついに再開することにしました。とはいっても、要望書のようなものを投げればコードを生成してくれるので、あとは微調整しながら思いついた機能を追加するだけで形になってしまいます。私はPythonは多少わかるものの、UIやアップロード方法などWebサービス開発はからっきしなので完成品を眺めてもなおよくわかりません。危険ですね。
ということで、どのように開発したか開発過程を簡単にお見せしようと思います。模範的柔道部員としてブログのネタ用にスクリーンショットをきちんと残しておきましたので、HP担当の権限を活かしふんだんに画像を盛り込みます。まず私が入力した要望は以下の通りのアバウトなものです。

しばらくするとコードが生成されます。

UI用のコードも書いてもらったので自分の端末で起動すると、以下のように動作しました。


すっごいです。コーヒーを淹れている間にコードができている、もうそんな便利な時代なのだと気づかされます。最近は「AIっぽいUI」(黒背景にゲーミングカラーの文字やボタンなど)を見かけることが増えましたが、今回はそこまでAI臭のしないものを作ってくれました。とはいえ実行してみるとまだまだ想定通りにはいかないので微調整を加えます。またこの時点では確率を導入していないので組み込み、1回シミュレーションと1000回シミュレーションをできるようにしました。
更にルールも選択できるようにしました。三商ルールは旧講道館ルールとして使えるようになっております。またテスト中に気づいたのですが、七帝ルールで各チームの合計戦力を同じにしても勝率に10%ポイント以上の差がつくこともあります。いかにオーダーが大事かということですね。(追記:この後代表戦を実装しましたが、代表戦の有無は現時点で設定できません。後日修正します。)






コメント