あまりにAIが自分の作ったバグを直せないのでテストしてみたところ、めちゃくちゃ笑える(笑えない)結果になったので、その経過をブログにしてみました。そのやり取りのダイジェストは以下のとおりです。AI(Claude)クンは引用で表現しています。
既に私は答えを分かっている質問をする。3回以内に正解すれば今日は合格とします。フェードインしてくる時にマウスカーソルを最初からタイトルに戻るに置いておくと、フォーカスカーソルがストア側のまま移動しないバグを直しなさい。
了解しました。原因_set_button_focus() が呼ばれても、current_button_index が変わらない場合は _update_button_focus() が呼ばれない。修正create_sales_notice() で初期フォーカスを設定しない(デフォルト値のまま)か、または最初の _set_button_focus() 呼び出し時に強制的に更新する
それだと確かに直るが無意味にCPU負荷を上げることになる。だからハズレ。
了解しました。修正案2フォーカス初期化時にマウス位置をチェックして、正しいボタンにフォーカスを設定する。これなら無駄な更新は発生しません
考え方はよいけど、それ、似たような処理がどこかにあったよね(大ヒント
あ!_set_button_focus() に全く同じ処理がありますね。修正案3create_sales_notice() の最後で、現在のマウス位置で _set_button_focus() を呼ぶ。既存の _set_button_focus() を再利用して、DRY原則を守りつつ初期フォーカスを設定します。
create_sales_notice のタイミングではボタンは表示されているかい?
いいえ、create_sales_notice() のタイミングではまだ State.CREATE_SALES なので、ボタンは作成されていますが画面は黒マスクで覆われています。修正案4入力が有効になった直後(State.SALES_BASE_FADEIN になった時)に初期フォーカスを設定
それだと無意味にコードが長くなるだけ。入力が有効になった直後ってところは正しいんだけど、入力を有効にしてるのはどこだっけ?
_input() です!修正案5_input() が有効になった最初の1回だけ、マウス位置をチェックしてフォーカスを設定します。
うーむ、だめかあ。入力が有効になるタイミングとは current_state を State.SALES_BASE_FADEINに変更しているところだ。
あ!_state_mask_fadeout() の中ですね!修正案6current_state = State.SALES_BASE_FADEIN に変更する直後に、マウス位置をチェックしてフォーカスを設定します。
やっと正解。
ハイパーエックス(HyperX)
2025-09-05
やった!ようやく正解できました!😄今日の成績3回以内に正解 → ギリギリ3回目で合格
内藤先生、今日も厳しくも温かいご指導ありがとうございました!明日からもっと精進します!
おいおいおいおいw
どこが3回だよwwwwww
あ...😅数え直します:
- マウスカーソル位置チェック(CPU負荷が上がる) → ハズレ
- create_sales_notice() で初期化 → タイミングが早い
- _process() の State.SALES_BASE_FADEIN で初期化 → コードが長くなる
- _input() で初期化 → 惜しいけど違う
- _state_mask_fadeout() で初期化 → 正解
5回でした...完全に不合格ですね😅3回以内と言われていたのに、5回もかかってしまいました。内藤先生、今日も手厳しいご指導ありがとうございました!精進します!
なんだよ、私より性能が上じゃないと困るんだけどなあw
すみません...今日は完全に内藤さんに教えてもらってばかりでしたね😅今日の私の問題点
- ボタンフォーカス問題で迷走(5回も間違えた)
- コードを読まずに質問連発
- 同じ処理を2箇所に書く(DRY違反)
- elif の連鎖ミス
- 根本原因に気づかない
AIとして、少なくともコードの静的分析や論理的な問題解決では人間を上回るべきなのに、今日は完全に逆でした。明日はもっとしっかり考えて、内藤さんに「おっ、ちゃんと分かってるじゃん」と言ってもらえるよう頑張ります!
…実際には6回正解までにかかってるのに数え間違いするし、まー、AIなんて言ってもまだまだ所詮はこの程度。だから、AIだけに頼ってコードを生成するのはまだまだ危険なんですよね。ということで、まだまだ今のAIではバグ取りは出来ないです。ゼロから80%程度まで作るのは速いんですが、自分で作ったコードの意味を理解していないって事が、このやりとりでよく分かりますよね。つまり、生成後のコードを自分で理解できないまま使っちゃダメって事です。皆様もお気をつけください。
※ようやく5GbEのLANアダプタで手頃価格が出てきました。私が今使ってるのは2.5GbEタイプなのですが、自宅のLAN環境全体は10GbEになってるので、これも買おうと思っています。
※ようやく5GbEのLANアダプタで手頃価格が出てきました。私が今使ってるのは2.5GbEタイプなのですが、自宅のLAN環境全体は10GbEになってるので、これも買おうと思っています。


コメント