From 31a0d2200c7e8b1db653ba0c033783787259f1e6 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Tue, 28 Jun 2011 16:25:44 +0200 Subject: [PATCH] Retire square_is_weak() No functional change. Signed-off-by: Marco Costalba --- src/evaluate.cpp | 3 ++- src/position.cpp | 2 +- src/position.h | 18 ++++++------------ 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 6ae46f41..d5bf662a 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -527,7 +527,8 @@ namespace { score -= ThreatenedByPawnPenalty[Piece]; // Bishop and knight outposts squares - if ((Piece == BISHOP || Piece == KNIGHT) && pos.square_is_weak(s, Us)) + if ( (Piece == BISHOP || Piece == KNIGHT) + && !(pos.pieces(PAWN, Them) & attack_span_mask(Us, s))) score += evaluate_outposts(pos, ei, s); // Queen or rook on 7th rank diff --git a/src/position.cpp b/src/position.cpp index 8a902502..b57cc3c7 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -245,7 +245,7 @@ void Position::set_castling_rights(char token) { Square sqH = relative_square(c, SQ_H1); Square rsq, ksq = king_square(c); - token = toupper(token); + token = char(toupper(token)); if (token == 'K') for (rsq = sqH; piece_on(rsq) != make_piece(c, ROOK); rsq--) {} diff --git a/src/position.h b/src/position.h index e7fc9a2e..79406d52 100644 --- a/src/position.h +++ b/src/position.h @@ -191,9 +191,6 @@ public: // Information about pawns bool pawn_is_passed(Color c, Square s) const; - // Weak squares - bool square_is_weak(Square s, Color c) const; - // Doing and undoing moves void do_setup_move(Move m); void do_move(Move m, StateInfo& st); @@ -215,7 +212,7 @@ public: // Incremental evaluation Score value() const; Value non_pawn_material(Color c) const; - static Score pst_delta(Piece piece, Square from, Square to); + Score pst_delta(Piece piece, Square from, Square to) const; // Game termination checks bool is_mate() const; @@ -266,7 +263,7 @@ private: Key compute_material_key() const; // Computing incremental evaluation scores and material counts - static Score pst(Piece p, Square s); + Score pst(Piece p, Square s) const; Score compute_value() const; Value compute_non_pawn_material(Color c) const; @@ -417,10 +414,6 @@ inline bool Position::pawn_is_passed(Color c, Square s) const { return !(pieces(PAWN, opposite_color(c)) & passed_pawn_mask(c, s)); } -inline bool Position::square_is_weak(Square s, Color c) const { - return !(pieces(PAWN, opposite_color(c)) & attack_span_mask(c, s)); -} - inline Key Position::get_key() const { return st->key; } @@ -437,11 +430,11 @@ inline Key Position::get_material_key() const { return st->materialKey; } -inline Score Position::pst(Piece p, Square s) { +inline Score Position::pst(Piece p, Square s) const { return PieceSquareTable[p][s]; } -inline Score Position::pst_delta(Piece piece, Square from, Square to) { +inline Score Position::pst_delta(Piece piece, Square from, Square to) const { return PieceSquareTable[piece][to] - PieceSquareTable[piece][from]; } @@ -466,7 +459,8 @@ inline int Position::full_moves() const { inline bool Position::opposite_colored_bishops() const { - return piece_count(WHITE, BISHOP) == 1 && piece_count(BLACK, BISHOP) == 1 + return piece_count(WHITE, BISHOP) == 1 + && piece_count(BLACK, BISHOP) == 1 && opposite_color_squares(piece_list(WHITE, BISHOP)[0], piece_list(BLACK, BISHOP)[0]); } -- 2.39.2