X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fevaluate.cpp;h=64760d4da5d206f7efc4ac6535fb0b0266cf261a;hb=f148a8f6ccbb57c440910ecfd4845c7f497b5404;hp=6c563f72cf1cddf509dfcbb9e2c2f1c145948e88;hpb=6181e01c2a6a40c82c6b76036cc7ba25c952fbe4;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 6c563f72..64760d4d 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -348,23 +348,23 @@ Value do_evaluate(const Position& pos, EvalInfo& ei, int threadID) { // Middle-game specific evaluation terms if (phase > PHASE_ENDGAME) { - // Pawn storms in positions with opposite castling - if ( square_file(pos.king_square(WHITE)) >= FILE_E - && square_file(pos.king_square(BLACK)) <= FILE_D) + // Pawn storms in positions with opposite castling + if ( square_file(pos.king_square(WHITE)) >= FILE_E + && square_file(pos.king_square(BLACK)) <= FILE_D) - ei.value += make_score(ei.pi->queenside_storm_value(WHITE) - ei.pi->kingside_storm_value(BLACK), 0); + ei.value += make_score(ei.pi->queenside_storm_value(WHITE) - ei.pi->kingside_storm_value(BLACK), 0); - else if ( square_file(pos.king_square(WHITE)) <= FILE_D - && square_file(pos.king_square(BLACK)) >= FILE_E) + else if ( square_file(pos.king_square(WHITE)) <= FILE_D + && square_file(pos.king_square(BLACK)) >= FILE_E) - ei.value += make_score(ei.pi->kingside_storm_value(WHITE) - ei.pi->queenside_storm_value(BLACK), 0); + ei.value += make_score(ei.pi->kingside_storm_value(WHITE) - ei.pi->queenside_storm_value(BLACK), 0); - // Evaluate space for both sides - if (ei.mi->space_weight() > 0) - { - evaluate_space(pos, ei); - evaluate_space(pos, ei); - } + // Evaluate space for both sides + if (ei.mi->space_weight() > 0) + { + evaluate_space(pos, ei); + evaluate_space(pos, ei); + } } // Mobility @@ -795,7 +795,6 @@ namespace { { Square s = pop_1st_bit(&b); - assert(pos.piece_on(s) == piece_of_color_and_type(Us, PAWN)); assert(pos.pawn_is_passed(Us, s)); int r = int(relative_rank(Us, s) - RANK_2); @@ -820,9 +819,6 @@ namespace { squaresToQueen = squares_in_front_of(Us, s); defendedSquares = squaresToQueen & ei.attacked_by(Us); - // There are no enemy pawns in the pawn's path - assert(!(squaresToQueen & pos.pieces(PAWN, Them))); - // If there is an enemy rook or queen attacking the pawn from behind, // add all X-ray attacks by the rook or queen. Otherwise consider only // the squares in the pawn's path attacked or occupied by the enemy. @@ -900,6 +896,7 @@ namespace { Square s = pop_1st_bit(&b); Square queeningSquare = relative_square(c, make_square(square_file(s), RANK_8)); int d = square_distance(s, queeningSquare) + - (relative_rank(c, s) == RANK_2) // Double pawn push - square_distance(pos.king_square(opposite_color(c)), queeningSquare) + int(c != pos.side_to_move());