X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=ca70f2d0a684529ab3b4b9c3bea9642f0f3883c4;hp=b4e86f3b1d826030f8e6a3d4a34686d680a6f339;hb=0d8a4c7565390c9f7ccc99799a76a19fb50e6f7b;hpb=3b19ea6ae5291ecc989df7499998e7856f3c1c5a diff --git a/src/evaluate.cpp b/src/evaluate.cpp index b4e86f3b..ca70f2d0 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -162,9 +162,7 @@ namespace { const Score Tempo = make_score(24, 11); const Score RookOn7th = make_score(11, 20); - const Score QueenOn7th = make_score( 3, 8); const Score RookOnPawn = make_score(10, 28); - const Score QueenOnPawn = make_score( 4, 20); const Score RookOpenFile = make_score(43, 21); const Score RookSemiopenFile = make_score(19, 10); const Score BishopPawns = make_score( 8, 12); @@ -514,23 +512,21 @@ Value do_evaluate(const Position& pos) { score += MinorBehindPawn; } - if ( (Pt == ROOK || Pt == QUEEN) - && relative_rank(Us, s) >= RANK_5) + if (Pt == ROOK) { - // Major piece on 7th rank and enemy king trapped on 8th + // Rook on 7th rank and enemy king trapped on 8th if ( relative_rank(Us, s) == RANK_7 && relative_rank(Us, pos.king_square(Them)) == RANK_8) - score += Pt == ROOK ? RookOn7th : QueenOn7th; + score += RookOn7th; - // Major piece attacking enemy pawns on the same rank/file - Bitboard pawns = pos.pieces(Them, PAWN) & PseudoAttacks[ROOK][s]; - if (pawns) - score += popcount(pawns) * (Pt == ROOK ? RookOnPawn : QueenOnPawn); - } + // Rook piece attacking enemy pawns on the same rank/file + if (relative_rank(Us, s) >= RANK_5) + { + Bitboard pawns = pos.pieces(Them, PAWN) & PseudoAttacks[ROOK][s]; + if (pawns) + score += popcount(pawns) * RookOnPawn; + } - // Special extra evaluation for rooks - if (Pt == ROOK) - { // Give a bonus for a rook on a open or semi-open file if (ei.pi->semiopen(Us, file_of(s))) score += ei.pi->semiopen(Them, file_of(s)) ? RookOpenFile : RookSemiopenFile; @@ -943,7 +939,7 @@ Value do_evaluate(const Position& pos) { // Tracing function definitions - double Tracing::to_cp(Value v) { return double(v) / PawnValueMg; } + double Tracing::to_cp(Value v) { return double(v) / PawnValueEg; } void Tracing::add_term(int idx, Score wScore, Score bScore) {