X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fposition.h;h=1078e03ed75fa5a4aa42bed002f0d7f820517c09;hb=298cf150958212e3270182644fd87f5489823b27;hp=1351d0d125a6b60a4d14d78aaf071af638417b92;hpb=eb07775583c39893bc6eb65a40b5f62a7799deee;p=stockfish 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; }