1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Pass endgame value to evaluate_scale_factor()

No functional change

Resolves #592
This commit is contained in:
joergoster 2016-02-25 19:38:35 +01:00 committed by Joona Kiiski
parent 45a309d92e
commit 8de29390f2

View file

@ -695,9 +695,9 @@ namespace {
// evaluate_scale_factor() computes the scale factor for the winning side
ScaleFactor evaluate_scale_factor(const Position& pos, const EvalInfo& ei, Score score) {
ScaleFactor evaluate_scale_factor(const Position& pos, const EvalInfo& ei, Value eg) {
Color strongSide = eg_value(score) > VALUE_DRAW ? WHITE : BLACK;
Color strongSide = eg > VALUE_DRAW ? WHITE : BLACK;
ScaleFactor sf = ei.me->scale_factor(pos, strongSide);
// If we don't already have an unusual scale factor, check for certain
@ -720,7 +720,7 @@ namespace {
}
// Endings where weaker side can place his king in front of the opponent's
// pawns are drawish.
else if ( abs(eg_value(score)) <= BishopValueEg
else if ( abs(eg) <= BishopValueEg
&& ei.pi->pawn_span(strongSide) <= 1
&& !pos.pawn_passed(~strongSide, pos.square<KING>(~strongSide)))
sf = ei.pi->pawn_span(strongSide) ? ScaleFactor(51) : ScaleFactor(37);
@ -816,7 +816,7 @@ Value Eval::evaluate(const Position& pos) {
score += evaluate_initiative(pos, ei.pi->pawn_asymmetry(), eg_value(score));
// Evaluate scale factor for the winning side
ScaleFactor sf = evaluate_scale_factor(pos, ei, score);
ScaleFactor sf = evaluate_scale_factor(pos, ei, eg_value(score));
// Interpolate between a middlegame and a (scaled by 'sf') endgame score
Value v = mg_value(score) * int(ei.me->game_phase())