TadaoYamaoka / DeepLearningShogi

GNU General Public License v3.0
201 stars 33 forks source link

DfPnで詰みなのに子ノードに指し手が見つからないバグ #46

Closed TadaoYamaoka closed 3 years ago

TadaoYamaoka commented 3 years ago

sfen 3B2p1p/l5g2/6np1/p2RpS2k/1pp1gbsP1/P1n3g1l/LP3+p2L/K4p3/1NR3N2 b GS2Ps4p 137

dfpn.dfpn(pos)がtrueにもかかわらず、dfpn.dfpn_move(pos)がmoveNull()を返す。

TadaoYamaoka commented 3 years ago

探索中に現れる詰みの局面で、証明駒を誤って設定していた。 sfen 3B2p1p/l5g2/6np1/p2RpS2k/1pp1gbsP1/P1n3g1l/LP3+p2L/K4p3/1NR3N2 b G2S2P4p 1

https://github.com/TadaoYamaoka/DeepLearningShogi/blob/4b2d6c8dd50643d1edb6cfdc8cf507b7c93f908f/usi/dfpn.cpp#L365

近接王手の判定が誤っていたため、証明駒が追加されていなかった。 https://github.com/TadaoYamaoka/DeepLearningShogi/blob/4b2d6c8dd50643d1edb6cfdc8cf507b7c93f908f/usi/dfpn.cpp#L261 【誤】move.pieceTypeTo() == Lance 【正】move.pieceTypeTo() == Knight