View on GitHub

fighting-game-button-challenge

fighting-game-button-challenge

issue scoreで上達をわかるようにしたい #10

issues #10

これまでの課題

ブレインストーミング

LLMに可視化させる

LLMに可視化させる


LLM出力 : 実装ステップlist

  1. 失敗判定の厳格化
    • check_mission_success(既存)を修正し、「ノーカン」「失敗」「成功」の3値を返すようにする
    • 必要に応じて新規関数 is_no_count_case を追加
  2. 失敗時の成績反映
    • check_and_update_mission(既存)で「失敗」時に失敗回数をカウントする変数(例: fail_count)を追加
    • 失敗時はscoreを増やさず、fail_countのみ加算
  3. missionごとのタイマー計測
    • on_green(既存)でmission開始時刻を記録する(例: 新規変数 mission_start_time
    • check_mission_success(既存)で成功時に現在時刻との差分を計算し、「かかった時間list」(例: mission_times)にappend
  4. 失敗ごとに「かかった時間」を加算
    • 失敗時、mission_timesの最新要素に1000msを加算する処理を追加
  5. ラップタイムの算出と表示
    • on_all_mission_green(既存)でmission_timesの合計・平均を計算し、成績として保存
    • 新規関数 show_lap_time でラップタイムをUIに表示
  6. 成績表示タイミングの制御
    • main_loop(既存)で「1周目終了時」「次の1周開始前」に成績表示を制御
    • 新規変数 is_first_lap で状態管理
  7. リセット処理
    • main_loopまたはcheck_playing_game_and_do_backmost(既存)で、ウィンドウが背面になってから1分経過したらmission_timesや成績をリセットする処理を追加
  8. 累積scoreの維持
    • 既存のscore変数を「累積score」としてそのまま残す

一歩ずつやる

LLM出力 : 1. 失敗判定の厳格化:設計まとめ

外部設計

内部設計

変更する関数名のリスト

引数追加のある関数のリスト

新規関数名のリスト

tomlの仕様変更


所感

LLM出力 : 進捗可視化 : 1. 失敗判定の厳格化

現状まとめ(2025-06-06時点)

項目 状態 備考
3値判定の設計 完了 仕様・設計方針は明確
toml仕様の決定 完了 mission単位→lever_names.tomlのno_count_namesに変更
toml記述 完了 lever_names.tomlに[[no_count_names]]記述済み
configs.pyでのread実装 完了 no_count_namesの読み込み処理あり
no_count_namesの伝播 一部完了 いくつかの箇所で利用開始
判定ロジックの本実装 未着手/途中 check_mission_successの3値化/is_no_count_case等

次のアクション例:

(この進捗可視化はmd末尾に自動追記されたものです)


所感

is_no_count_case のアルゴリズムを類推させる

is_no_count_case のアルゴリズム検討

結果

所感


LLM出力 : 1. 失敗判定の厳格化:進捗可視化(2025-06-07時点)

項目 状態 備考
3値判定の設計 完了 仕様・設計方針は明確
toml仕様の決定 完了 mission単位→lever_names.tomlのno_count_namesに変更
toml記述 完了 lever_names.tomlに[[no_count_names]]記述済み
configs.pyでのread実装 完了 no_count_namesの読み込み処理あり
no_count_namesの伝播 完了 主要ロジックに伝播済み
判定ロジックの本実装 完了 check_mission_successの3値化/is_no_count_case等
テスト 完了 TDDでtest_is_no_count_case.py作成・green

総評

改善提案(重要度上位2つ)

  1. ノーカン・失敗パターンの柔軟性向上
    • 現状はlever_names.tomlベースで一括管理だが、missionごとに細かく例外や特殊パターンを指定できる仕組みを検討。
    • 例:特定missionのみ独自のno_countやfail条件を持たせる。
  2. 判定理由の可視化・デバッグ支援
    • 判定結果(成功/ノーカン/失敗)だけでなく、「なぜその判定になったか」をログやUIで確認できるようにする。
    • テストや運用時の認知負荷をさらに下げる。

所感


LLM出力: 2. 失敗時の成績反映 外部設計・内部設計

外部設計

内部設計

変更する関数名のリスト

引数追加のある関数のリスト

新規関数名のリスト

上記をagent実装させた

プロンプト案

結果

次の、4. の要否を検討する

次の、5. を検討して整理する

これまで

↑あとでやる