X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=269e80624588c8267cfe31b29fe41e8aba8053b6;hp=c2e03d97e25564e5d1b8b80309fe5eec6b9262bc;hb=7fe1632a494a25372d926e653c0fb2af556072f8;hpb=bdbbc4e06bbc1d8437cfdc31cc35006f1ee5f0c9 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index c2e03d97..269e8062 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -586,7 +586,9 @@ namespace { Bitboard bb = (b & ~ei.attackedBy[them][PAWN]); // Mobility - int mob = count_1s_max_15(bb & ~p.pieces_of_color(us)); + int mob = (Piece != QUEEN ? count_1s_max_15(bb & ~p.pieces_of_color(us)) + : count_1s(bb & ~p.pieces_of_color(us))); + ei.mgMobility += Sign[us] * MgBonus[Piece][mob]; ei.egMobility += Sign[us] * EgBonus[Piece][mob]; @@ -916,7 +918,7 @@ namespace { { Square s = pop_1st_bit(&b); - assert(pos.piece_on(s) == pawn_of_color(us)); + 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); @@ -1067,12 +1069,12 @@ namespace { void evaluate_trapped_bishop_a7h7(const Position &pos, Square s, Color us, EvalInfo &ei) { assert(square_is_ok(s)); - assert(pos.piece_on(s) == bishop_of_color(us)); + assert(pos.piece_on(s) == piece_of_color_and_type(us, BISHOP)); Square b6 = relative_square(us, (square_file(s) == FILE_A) ? SQ_B6 : SQ_G6); Square b8 = relative_square(us, (square_file(s) == FILE_A) ? SQ_B8 : SQ_G8); - if ( pos.piece_on(b6) == pawn_of_color(opposite_color(us)) + if ( pos.piece_on(b6) == piece_of_color_and_type(opposite_color(us), PAWN) && pos.see(s, b6) < 0 && pos.see(s, b8) < 0) { @@ -1089,12 +1091,12 @@ namespace { void evaluate_trapped_bishop_a1h1(const Position &pos, Square s, Color us, EvalInfo &ei) { - Piece pawn = pawn_of_color(us); + Piece pawn = piece_of_color_and_type(us, PAWN); Square b2, b3, c3; assert(Chess960); assert(square_is_ok(s)); - assert(pos.piece_on(s) == bishop_of_color(us)); + assert(pos.piece_on(s) == piece_of_color_and_type(us, BISHOP)); if (square_file(s) == FILE_A) {