Closed taotao54321 closed 2 years ago
version: commit 9ea383121525b7391aceb8ffeead3cc6eda037a4
図の局面で12歩は合法ですが、yasai では打ち歩詰めと判定されてしまいます。
金/馬/飛/龍がまっすぐ引いて歩を取る手は(たとえ pin されていても)常に可能なので、歩を打った筋については pin 判定の対象外とする処理が必要だと思います。
また別件なのですが、こちらのコードは玉の移動先から既に single が除かれているのにさらに single を XOR しているため、結局玉で歩を取る手を二重に判定してしまっているようです: https://github.com/sugyan/yasai/blob/9ea383121525b7391aceb8ffeead3cc6eda037a4/src/movegen.rs#L364-L374
single
なるほど、確かにこのパターンは考慮されていませんでした… ありがとうございます!
version: commit 9ea383121525b7391aceb8ffeead3cc6eda037a4
図の局面で12歩は合法ですが、yasai では打ち歩詰めと判定されてしまいます。
金/馬/飛/龍がまっすぐ引いて歩を取る手は(たとえ pin されていても)常に可能なので、歩を打った筋については pin 判定の対象外とする処理が必要だと思います。
また別件なのですが、こちらのコードは玉の移動先から既に
single
が除かれているのにさらにsingle
を XOR しているため、結局玉で歩を取る手を二重に判定してしまっているようです: https://github.com/sugyan/yasai/blob/9ea383121525b7391aceb8ffeead3cc6eda037a4/src/movegen.rs#L364-L374