X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=3303a3db04ac4a85fedc3f77d357b448e99297b8;hp=9730d3dc24b253d276fdb8ffe2e0771cc91a8087;hb=b4cb1a3a9e731015723924432293357fcdd203bc;hpb=bbb24625764619e5886ce0250739a4c9bfdb4d33 diff --git a/src/position.h b/src/position.h index 9730d3dc..3303a3db 100644 --- a/src/position.h +++ b/src/position.h @@ -244,12 +244,9 @@ public: // Information about pawns bool pawn_is_passed(Color c, Square s) const; - bool pawn_is_isolated(Color c, Square s) const; - bool pawn_is_doubled(Color c, Square s) const; - - // Open and half-open files - bool file_is_open(File f) const; - bool file_is_half_open(Color c, File f) const; + static bool pawn_is_passed(Bitboard theirPawns, Color c, Square s); + static bool pawn_is_isolated(Bitboard ourPawns, Square s); + static bool pawn_is_doubled(Bitboard ourPawns, Color c, Square s); // Weak squares bool square_is_weak(Square s, Color c) const; @@ -266,6 +263,7 @@ public: int see(Square from, Square to) const; int see(Move m) const; int see(Square to) const; + int see_sign(Move m) const; // Accessing hash keys Key get_key() const; @@ -312,12 +310,9 @@ private: void allow_ooo(Color c); // Helper functions for doing and undoing moves - void do_capture_move(PieceType capture, Color them, Square to); + void do_capture_move(PieceType capture, Color them, Square to, bool ep); void do_castle_move(Move m); - void do_promotion_move(Move m); - void do_ep_move(Move m); void undo_castle_move(Move m); - void undo_promotion_move(Move m); void undo_ep_move(Move m); void find_checkers(); @@ -591,20 +586,16 @@ inline bool Position::pawn_is_passed(Color c, Square s) const { return !(pawns(opposite_color(c)) & passed_pawn_mask(c, s)); } -inline bool Position::pawn_is_isolated(Color c, Square s) const { - return !(pawns(c) & neighboring_files_bb(s)); -} - -inline bool Position::pawn_is_doubled(Color c, Square s) const { - return pawns(c) & squares_behind(c, s); +inline bool Position::pawn_is_passed(Bitboard theirPawns, Color c, Square s) { + return !(theirPawns & passed_pawn_mask(c, s)); } -inline bool Position::file_is_open(File f) const { - return !(pawns() & file_bb(f)); +inline bool Position::pawn_is_isolated(Bitboard ourPawns, Square s) { + return !(ourPawns & neighboring_files_bb(s)); } -inline bool Position::file_is_half_open(Color c, File f) const { - return !(pawns(c) & file_bb(f)); +inline bool Position::pawn_is_doubled(Bitboard ourPawns, Color c, Square s) { + return ourPawns & squares_behind(c, s); } inline bool Position::square_is_weak(Square s, Color c) const { @@ -650,8 +641,8 @@ inline Value Position::non_pawn_material(Color c) const { inline Phase Position::game_phase() const { // Values modified by Joona Kiiski - static const Value MidgameLimit = Value(15713); - static const Value EndgameLimit = Value(4428); + static const Value MidgameLimit = Value(15581); + static const Value EndgameLimit = Value(3998); Value npm = non_pawn_material(WHITE) + non_pawn_material(BLACK);