前回は、コースごとの条件や関係性について整理しました。
(→ 分析していたらコースごとの条件を考えるようになった話)
その中で見えてきたのは、勝敗は単体ではなく、複数の条件の組み合わせで決まるという構造です。
ただ、この時点ではまだ、「条件を理解しただけ」という状態でした。
実際に使うためには、これをロジックとして動かす必要があると感じました。
条件をそのままでは使えない
例えば、これまでに見えてきた条件は、
・2コース → 1より速く、かつ差がある
・3コース → 他コースとの関係に依存
・4コース → 内崩れ+スタート
といった形です。
ただ、これをそのまま使おうとすると、判断が曖昧になるという問題がありました。
・どの条件を優先するのか
・複数条件が重なった場合はどうするのか
→ 明確なルールが必要でした。
分岐という考え方
そこで考えたのが、条件ごとに分岐するという方法です。
つまり、if文を使ってロジックを組み立てるという形です。
例えば、
・もし2コースが1より明確に速いなら → 2を評価
・そうでなければ → 別条件を見る
といった形で、状況ごとに判断を変えるようにしました。
実際に組んでみる
実際にロジックを組んでみると、今まで曖昧だった部分が明確になるという感覚がありました。
・条件の優先順位
・どこで判断しているのか
がはっきりしてきます。
また、再現性も上がったと感じました。
同じ条件であれば同じ結果になるため、検証もしやすくなります。
ただし問題も出てきた
一方で、ロジックを組んでいく中で、別の問題も出てきました。
条件が増えるほど複雑になるという点です。
・分岐が増える
・コードが長くなる
・全体が見えにくくなる
最初はシンプルだったものが、徐々に扱いづらくなっていきました。
精度は上がったのか
実際にこの分岐ロジックを使って検証してみると、一定の再現性は出てきたと感じました。
・1コースは安定
・2〜4コースも条件次第で機能
ただ、完璧とは言えないという状態でした。
・まだブレる
・改善の余地がある
そんな印象です。
見えてきた限界
この段階で感じたのは、分岐は表現力が高いが、調整が難しいということでした。
条件を増やせば対応できる範囲は広がりますが、その分、全体のバランスが崩れやすくなるという問題がありました。
次にやること
ここまでで、ロジックとして形にはなった状態です。
ただ、もっとシンプルに、安定させたいと感じるようになりました。
そこで次に考えたのが、重み付け(スコア化)です。
条件ごとに分岐するのではなく、全体をまとめて評価する方法です。
次回は、この分岐ロジックを調整していく中で見えてきた限界と、そこから発想を変えた過程についてまとめていきます。
