X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=4e15bb136f9997d98e9e070243d142b9836efca2;hp=903b1b646e1a475dbdaebe7fdf86ac7a799bcd84;hb=f026517e5ee4db8dca5eb2bfd9ce7078a9d39725;hpb=f99cb3dc27719021e126690b7fd5aa5f43663ed8 diff --git a/src/position.h b/src/position.h index 903b1b64..4e15bb13 100644 --- a/src/position.h +++ b/src/position.h @@ -81,7 +81,7 @@ public: static void init(); // Text input/output - void set(const std::string& fen, bool isChess960, Thread* th); + void set(const std::string& fenStr, bool isChess960, Thread* th); const std::string fen() const; const std::string pretty(Move m = MOVE_NONE) const; @@ -108,7 +108,7 @@ public: // Checking Bitboard checkers() const; Bitboard discovered_check_candidates() const; - Bitboard pinned_pieces(Color toMove) const; + Bitboard pinned_pieces(Color c) const; // Attacks to/from a given square Bitboard attackers_to(Square s) const; @@ -123,7 +123,7 @@ public: bool capture(Move m) const; bool capture_or_promotion(Move m) const; bool gives_check(Move m, const CheckInfo& ci) const; - bool passed_pawn_push(Move m) const; + bool advanced_pawn_push(Move m) const; Piece moved_piece(Move m) const; PieceType captured_piece_type() const; @@ -174,7 +174,7 @@ private: // Helper functions void do_castling(Square kfrom, Square kto, Square rfrom, Square rto); - Bitboard hidden_checkers(Square ksq, Color c, Color toMove) const; + Bitboard hidden_checkers(Color c, Color kingColor) const; void put_piece(Square s, Color c, PieceType pt); void remove_piece(Square s, Color c, PieceType pt); void move_piece(Square from, Square to, Color c, PieceType pt); @@ -315,21 +315,20 @@ inline Bitboard Position::checkers() const { } inline Bitboard Position::discovered_check_candidates() const { - return hidden_checkers(king_square(~sideToMove), sideToMove, sideToMove); + return hidden_checkers(sideToMove, ~sideToMove); } -inline Bitboard Position::pinned_pieces(Color toMove) const { - return hidden_checkers(king_square(toMove), ~toMove, toMove); +inline Bitboard Position::pinned_pieces(Color c) const { + return hidden_checkers(c, c); } inline bool Position::pawn_passed(Color c, Square s) const { return !(pieces(~c, PAWN) & passed_pawn_mask(c, s)); } -inline bool Position::passed_pawn_push(Move m) const { - +inline bool Position::advanced_pawn_push(Move m) const { return type_of(moved_piece(m)) == PAWN - && pawn_passed(sideToMove, to_sq(m)); + && relative_rank(sideToMove, from_sq(m)) > RANK_4; } inline Key Position::key() const {