mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +00:00
Pass endgame value to evaluate_scale_factor()
No functional change Resolves #592
This commit is contained in:
parent
45a309d92e
commit
8de29390f2
1 changed files with 4 additions and 4 deletions
|
@ -695,9 +695,9 @@ namespace {
|
||||||
|
|
||||||
|
|
||||||
// evaluate_scale_factor() computes the scale factor for the winning side
|
// 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);
|
ScaleFactor sf = ei.me->scale_factor(pos, strongSide);
|
||||||
|
|
||||||
// If we don't already have an unusual scale factor, check for certain
|
// 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
|
// Endings where weaker side can place his king in front of the opponent's
|
||||||
// pawns are drawish.
|
// pawns are drawish.
|
||||||
else if ( abs(eg_value(score)) <= BishopValueEg
|
else if ( abs(eg) <= BishopValueEg
|
||||||
&& ei.pi->pawn_span(strongSide) <= 1
|
&& ei.pi->pawn_span(strongSide) <= 1
|
||||||
&& !pos.pawn_passed(~strongSide, pos.square<KING>(~strongSide)))
|
&& !pos.pawn_passed(~strongSide, pos.square<KING>(~strongSide)))
|
||||||
sf = ei.pi->pawn_span(strongSide) ? ScaleFactor(51) : ScaleFactor(37);
|
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));
|
score += evaluate_initiative(pos, ei.pi->pawn_asymmetry(), eg_value(score));
|
||||||
|
|
||||||
// Evaluate scale factor for the winning side
|
// 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
|
// Interpolate between a middlegame and a (scaled by 'sf') endgame score
|
||||||
Value v = mg_value(score) * int(ei.me->game_phase())
|
Value v = mg_value(score) * int(ei.me->game_phase())
|
||||||
|
|
Loading…
Add table
Reference in a new issue