Fix cross-edge e.p. capture in Cylinder Chess
authorH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 24 Sep 2014 19:47:59 +0000 (21:47 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Sun, 28 Sep 2014 20:14:28 +0000 (22:14 +0200)
commit89f4b438a9bc3ed2b2b2bd79f22a1a6af06e9bcb
treea67b028f11d2db3998ecb1af66ffa2feb057a981
parent375e33f3342eca6f274a58d21c147f65a29b70ca
Fix cross-edge e.p. capture in Cylinder Chess

ApplyMove() did not remove the e.p. victim when an edge-crossing e.p.
capture was made, because e.p. rights are only set to neighboring files
(after checking there is a Pawn there to capture). The e.p. heuristic
has now been changed to also assume e.p. on file-changing Pawn moves
that span a large number of files, assuming that these will be wrapping
moves. Eventually we should change to better e.p. logic that can be
integrated with engine-configured move generation, as the current system
would fail for any Pawn that captures more than just neighbor ranks.
backend.c