1手詰め関数を作成中

まずは金打の1手詰め関数を作りました。
実際に対局させて異常があったら終了する形でデバッグ中です。


さっそく異常発生。
▼88金打で1手詰めのはずが……応手がある(^^;
自分で飛び利きを遮って王の逃げ場ができたパターンですね。
応手生成で確認すると無駄なコストが増えるので、飛び利きからみの時だけ確認するって方法をやりたいけど、
利き生成ルーチンを別に作るとメンテが面倒だしなあ。
まずは、応手を確認してチェックしますか……

44手目 先手
▼v香
 9 8 7 6 5 4 3 2 1
---------------------------+
v香v桂 ・v金 ・ ・ ・v桂 ・|一
 ・v玉v銀 ・v金 ・ 馬 ・v香|二
 ・v歩v歩 ・ ・ ・ ・v歩 ・|三
v歩 ・ ・ ・ ・ ・ ・ ・v歩|四
 ・ ・ ・ ・ ・v歩 歩 歩 ・|五
 歩 ・ 歩 ・ 銀 ・ ・ ・ 歩|六
 ・ 歩 ・ 歩 ・ 歩 ・ ・ ・|七
 ・v金 王 金vと 銀 ・ 飛 ・|八
v馬 桂 ・ ・ ・ ・ ・ 桂 香|九
---------------------------+
△ 歩三 銀 飛

金・銀・香打の1手詰めを作成。
1手詰めが見つかったら、その後の無駄な探索をしないで済むので、
npsが向上した感じがします。
静止探索のノード数も減った感じがしますね(゚Д゚ )ウマー