攻撃手生成関数にバグが_| ̄|○

さすがに5手詰めをハッシュ無しで全幅探索させるとぜんぜん探索が終わらない(^^;
ということで、
本来なら詰め将棋とは、先手は王手の手のみ生成するわけですが、
王手の手、取る手、成る手を生成して、探索させて見ます。


すると、攻撃手生成にバグがあるのを発見_| ̄|○
……う、こんな基本的なところにバグがありやがるとは……(T_T)
修正して、

▼持駒v歩16v香3v桂4v銀4v金3v飛2
 9 8 7 6 5 4 3 2 1
---------------------------+
 ・ ・ ・ ・ ・ ・ ・ ・v香|一
 ・ ・ ・ ・ ・ 金 ・ ・v玉|二
 ・ ・ ・ ・ ・ 馬 ・v歩 角|三
 ・ ・ ・ ・ ・ ・ ・ ・ 歩|四
 ・ ・ ・ ・ ・ ・ ・ ・ ・|五
 ・ ・ ・ ・ ・ ・ ・ ・ ・|六
 ・ ・ ・ ・ ・ ・ ・ ・ ・|七
 ・ ・ ・ ・ ・ ・ ・ ・ ・|八
 王 ・ ・ ・ ・ ・ ・ ・ ・|九
---------------------------+
△持駒

[1手目]先手
△22角成(10760)△31角成(10760)△24角成(10760)△35角成(10760)△46角成(10760)△57
角成(10760)△68角成(10760)△79角成(10760)△21馬(10760)
generate 9 moves
07  0.00sec -12785 △22角成▼同王△44馬▼33歩打△13歩成▼同香△33馬
07  0.08sec +30000 △21馬▼同王△31角成▼12王△13歩成▼詰み

BEST:△21馬▼同王△31角成▼12王△13歩成▼詰み
探索(398883/1655) 駒得-10760 評価-10760
[ 0.08sec]


▼持駒v歩16v香3v桂4v銀4v金3v飛2
 9 8 7 6 5 4 3 2 1
---------------------------+
 ・ ・ ・ ・ ・ ・ ・ 馬v香|一
 ・ ・ ・ ・ ・ 金 ・ ・v玉|二
 ・ ・ ・ ・ ・ ・ ・v歩 角|三
 ・ ・ ・ ・ ・ ・ ・ ・ 歩|四
 ・ ・ ・ ・ ・ ・ ・ ・ ・|五
 ・ ・ ・ ・ ・ ・ ・ ・ ・|六
 ・ ・ ・ ・ ・ ・ ・ ・ ・|七
 ・ ・ ・ ・ ・ ・ ・ ・ ・|八
 王 ・ ・ ・ ・ ・ ・ ・ ・|九
---------------------------+
△持駒

5手詰め解けた。


しかし、問題は、これを全幅探索で解けなければいかんのですが、
ハッシュ使わないと無理っぽい。
とりあえずハッシュをいれてみて、3手詰めが問題なく解けるところを確認しよう。