X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=64b1bf4cf750d8d0902ce6f9d22c189eb175480b;hp=29d71ea9e0cce28078ccf4a715521d85b3f6bbac;hb=ad937d0b2d2a9450686b9f3412c891a68ff19310;hpb=9e8bf82350002b826e40581100dbbcd1d65c796e
diff --git a/src/evaluate.cpp b/src/evaluate.cpp
index 29d71ea9..64b1bf4c 100644
--- a/src/evaluate.cpp
+++ b/src/evaluate.cpp
@@ -17,10 +17,10 @@
along with this program. If not, see .
*/
+#include
#include
#include
#include
-#include
#include "bitcount.h"
#include "evaluate.h"
@@ -169,7 +169,6 @@ namespace {
const Score RookSemiopenFile = make_score(19, 10);
const Score BishopPawns = make_score( 8, 12);
const Score MinorBehindPawn = make_score(16, 0);
- const Score UndefendedMinor = make_score(25, 10);
const Score TrappedRook = make_score(90, 0);
const Score Unstoppable = make_score( 0, 20);
@@ -520,16 +519,9 @@ namespace {
const Color Them = (Us == WHITE ? BLACK : WHITE);
- Bitboard b, undefendedMinors, weakEnemies;
+ Bitboard b, weakEnemies;
Score score = SCORE_ZERO;
- // Undefended minors get penalized even if they are not under attack
- undefendedMinors = pos.pieces(Them, BISHOP, KNIGHT)
- & ~ei.attackedBy[Them][ALL_PIECES];
-
- if (undefendedMinors)
- score += UndefendedMinor;
-
// Enemies not defended by a pawn and under our attack
weakEnemies = pos.pieces(Them)
& ~ei.attackedBy[Them][PAWN]
@@ -787,12 +779,6 @@ namespace {
sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL);
}
- // Stealmate detection
- Color stm = pos.side_to_move();
- if ( (ei.attackedBy[stm][ALL_PIECES] == ei.attackedBy[stm][KING])
- && (!(ei.attackedBy[stm][KING] & ~ei.attackedBy[~stm][ALL_PIECES])))
- sf = SCALE_FACTOR_DRAW;
-
// Interpolate between a middlegame and a (scaled by 'sf') endgame score
Value v = mg_value(score) * int(ei.mi->game_phase())
+ eg_value(score) * int(PHASE_MIDGAME - ei.mi->game_phase()) * sf / SCALE_FACTOR_NORMAL;