X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=e3fa28d17d0f4074087ee519c3ea05237d403c53;hp=9730d3dc24b253d276fdb8ffe2e0771cc91a8087;hb=cb506d3b1657c03738f823a98faed3c6b5216c40;hpb=bbb24625764619e5886ce0250739a4c9bfdb4d33 diff --git a/src/position.h b/src/position.h index 9730d3dc..e3fa28d1 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,10 +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); @@ -591,20 +588,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 +643,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);