X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;fp=src%2Fposition.h;h=1078e03ed75fa5a4aa42bed002f0d7f820517c09;hp=1351d0d125a6b60a4d14d78aaf071af638417b92;hb=3b46df546dd8b17963abae887acff6e91e2b945e;hpb=76777b663a5f5a2dcfaafa19c15d02d11c401bdf diff --git a/src/position.h b/src/position.h index 1351d0d1..1078e03e 100644 --- a/src/position.h +++ b/src/position.h @@ -129,6 +129,7 @@ public: // Piece specific bool pawn_passed(Color c, Square s) const; bool opposite_bishops() const; + int pawns_on_same_color_squares(Color c, Square s) const; // Doing and undoing moves void do_move(Move m, StateInfo& newSt); @@ -323,6 +324,10 @@ inline bool Position::advanced_pawn_push(Move m) const { && relative_rank(sideToMove, from_sq(m)) > RANK_4; } +inline int Position::pawns_on_same_color_squares(Color c, Square s) const { + return popcount(pieces(c, PAWN) & ((DarkSquares & s) ? DarkSquares : ~DarkSquares)); +} + inline Key Position::key() const { return st->key; }