Do not consider passing as capture
authorFabian Fichter <ianfab@users.noreply.github.com>
Wed, 1 Apr 2020 20:46:51 +0000 (22:46 +0200)
committerFabian Fichter <ianfab@users.noreply.github.com>
Wed, 1 Apr 2020 20:46:51 +0000 (22:46 +0200)
src/position.h

index ead5799..8541111 100644 (file)
@@ -945,7 +945,7 @@ inline bool Position::capture_or_promotion(Move m) const {
 inline bool Position::capture(Move m) const {
   assert(is_ok(m));
   // Castling is encoded as "king captures rook"
-  return (!empty(to_sq(m)) && type_of(m) != CASTLING) || type_of(m) == ENPASSANT;
+  return (!empty(to_sq(m)) && type_of(m) != CASTLING && from_sq(m) != to_sq(m)) || type_of(m) == ENPASSANT;
 }
 
 inline Piece Position::captured_piece() const {