思考の改良について

うさぴょん育ての親さんの本に載ってる項目として、
水平線対策として、「ハッシュ的に、盤面が同じで、持ち駒だけ減った場合」は水平線効果
とみなすコードを、まだ実装してなかった。無駄な探索が減れば、それだけ他に探索をまわせるので、
特に、序盤、中盤などの王手は、無駄な探索であることが多い。
王手をしたら、1手延長をすることで、静止探索に入る前に、無駄な王手であることを
探索ルーチンに解らせれば、水平線の抑止にはなるけれど、それだとかなり探索量を、本来むだな探索にとられてしまう。
上記のコードを入れれば、そのへんが1手延長をしないでも得られるんじゃないかと思う。
全幅の場合は、探索削減をどんどんやらないといけないけど、逆に探索延長は極力やりたくない。


あとは、落とし穴で穴熊にするやつと、詰め将棋が共謀数を使うやつを使ってるんですが、どうも挙動が変なので、
ここはいったん、普通の詰め将棋に戻そうと思う(ここで、柿木のアルゴリズムを実装するのに、上記のハッシュで同じ盤面を認識するのが役立つし)
もっとも全幅探索に詰め将棋ルーチンはいらない。それだけで詰め将棋も探索できるし。終盤度が上がれば、王手を1手延長すれば、より詰め将棋が解けるようになるはず。
ただ、初手とか、3手目で、詰め将棋ルーチンを呼ぶのは有効な気がする。


あとは、せっかくDualCoreなんだから、並列探索もやりたいよなー。あと、相手番で探索。
DLLで作ってるといまいちやりかたがよくわからんけど、単体アプリで作れれば、なんとかなるかな?
単体アプリなら、キャラクターの顔を形成に応じて変えて出すなんてこともできますねー。