ゲームコントローラ用のカーソル実装で、パズルのパーツが多くなってくるとフリーで動く構成だと結構面倒である。
そこで、カーソルがパーツの中心位置に自動で動き、方向キーで移動するようにしようと考えた。ただ、パーツは上下左右格子状に並ぶパズルだけではないので、例えば右に移動したいとき、概ねその方向で最も近いパーツを探さなければならない。
コーディングにあたり、再びGeminiに挑戦してもらうこととした。まずは、パーツの構成やスクリーン座標の管理、最適な移動先の捜索、捜索の効率化など必要となる仕様を列挙。続けて利用するための初期化、探索、パーツ移動による更新といった関数仕様を列挙。最後に品質面や効率面での念押しをいれて、およそ30行程度のプロンプトを作成。
これを、Gemini3の思考モードに作成してもらい、コードレビュー。すると、探索を毎回全てのパーツで実施しているので、パーツが数千個あると考えて、効率的探索を追加要求。これに対し、画面をあるサイズで分割してまず分割単位で大まかに希望方向にあるものだけを探索するカリングが加わった。
早速アプリに実装。最初はうまく動作しなかったが、探索に利用するベクトル計算のパラメータを指定できるようになっていたので、この数値を調整し希望する方向にカーソルが移動できるようになった。