From b6158eb0043e06b8b8db7b43d41914974c4c87a3 Mon Sep 17 00:00:00 2001 From: Mario Lang Date: Fri, 18 Apr 2014 13:51:46 +0200 Subject: chess-perft: Simplify en-passant checks. --- chess-perft.el | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/chess-perft.el b/chess-perft.el index b055d2c..8aa109f 100644 --- a/chess-perft.el +++ b/chess-perft.el @@ -63,36 +63,12 @@ The result is a list of the form (or (chess-pos-piece-p (chess-ply-pos ply) (chess-ply-target ply) (not (chess-pos-side-to-move (chess-ply-pos ply)))) - (let ((en-passant (chess-pos-en-passant - (chess-ply-pos ply)))) - (and en-passant - (chess-pos-piece-p (chess-ply-pos ply) - en-passant - (not - (chess-pos-side-to-move - (chess-ply-pos ply)))) - (/= (chess-ply-target ply) en-passant) - (/= (chess-pos-piece - (chess-ply-pos ply) en-passant) - (chess-pos-piece - (chess-ply-next-pos ply) en-passant)))))) + (chess-ply-keyword ply :en-passant))) plies) ;; En passants (cl-count-if (lambda (ply) - (let ((en-passant (chess-pos-en-passant - (chess-ply-pos ply)))) - (and en-passant - (chess-pos-piece-p (chess-ply-pos ply) - en-passant - (not - (chess-pos-side-to-move - (chess-ply-pos ply)))) - (/= (chess-ply-target ply) en-passant) - (/= (chess-pos-piece - (chess-ply-pos ply) en-passant) - (chess-pos-piece - (chess-ply-next-pos ply) en-passant))))) + (chess-ply-keyword ply :en-passant)) plies) ;; Castles (cl-count-if -- cgit v1.2.3