X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=ad76fc8d727b145e5815cafcc44e5f1e094cbc47;hp=cb1ad1f420060ef6d7fa1e0b076f1a04ac3388b3;hb=e5cfa14f40a38d99d11a9c048c34858e3145fbcd;hpb=36e4a86c08a4b79965d819b7893709245cad840a diff --git a/src/evaluate.cpp b/src/evaluate.cpp index cb1ad1f4..ad76fc8d 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -347,8 +347,8 @@ namespace { if (relative_rank(Us, s) >= RANK_5) score += RookOnPawn * popcount(pos.pieces(Them, PAWN) & PseudoAttacks[ROOK][s]); - // Bonus for rook on same file as their queen - if (file_bb(s) & pos.pieces(Them, QUEEN)) + // Bonus for rook on the same file as a queen + if (file_bb(s) & pos.pieces(QUEEN)) score += RookOnQueenFile; // Bonus for rook on an open or semi-open file @@ -725,12 +725,17 @@ namespace { bool pawnsOnBothFlanks = (pos.pieces(PAWN) & QueenSide) && (pos.pieces(PAWN) & KingSide); + bool almostUnwinnable = !pe->passed_count() + && outflanking < 0 + && !pawnsOnBothFlanks; + // Compute the initiative bonus for the attacking side int complexity = 9 * pe->passed_count() + 11 * pos.count() + 9 * outflanking + 18 * pawnsOnBothFlanks + 49 * !pos.non_pawn_material() + - 36 * almostUnwinnable -103 ; // Now apply the bonus: note that we find the attacking side by extracting