From: H.G.Muller Date: Mon, 6 Feb 2017 18:24:38 +0000 (+0100) Subject: Allow e.p. capture as check evasion X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=348998e6e224ee7ca2034bf746091aceab7f7f0a;p=crazywa.git Allow e.p. capture as check evasion The routine NonEvade, which vets move when in check before making them, now recognizes e.p. captures (i.e. diagonal Pawn moves to an empty square) when a Pawn is checking as a valid evasion. --- diff --git a/dropper.c b/dropper.c index f2bf201..ae671ce 100644 --- a/dropper.c +++ b/dropper.c @@ -990,6 +990,7 @@ NonEvade (StackFrame *f) if(f->toSqr == f->checker) return 0; // captures only checker: OK d = dist[f->checker - f->toSqr]; if(d && deltaVec[f->toSqr - f->checker] == f->checkDir && d < f->checkDist) return 0; // interposes: OK + if(f->fromPiece + board[f->checker] == COLOR && f->toSqr - f->fromSqr & 1) return (board[f->toSqr] != 0); return 1; } // king move