mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 00:56:39 +08:00
Add experimental contempt factor
This is very crude and very basic: simply in case of a draw for repetition or 50 moves rule return a negative score instead of zero according to the contempt factor (in centipawns). If contempt is positive engine will try to avoid draws (to use with weaker opponents), if negative engine will try to draw. If zero (default) there are no changes. No functional change.
This commit is contained in:
@@ -546,7 +546,7 @@ namespace {
|
||||
{
|
||||
// Step 2. Check for aborted search and immediate draw
|
||||
if (Signals.stop || pos.is_draw<false>() || ss->ply > MAX_PLY)
|
||||
return VALUE_DRAW;
|
||||
return Eval::ValueDrawContempt;
|
||||
|
||||
// Step 3. Mate distance pruning. Even if we mate at the next move our score
|
||||
// would be at best mate_in(ss->ply+1), but if alpha is already bigger because
|
||||
@@ -1101,7 +1101,7 @@ split_point_start: // At split points actual search starts from here
|
||||
|
||||
// Check for an instant draw or maximum ply reached
|
||||
if (pos.is_draw<true>() || ss->ply > MAX_PLY)
|
||||
return VALUE_DRAW;
|
||||
return Eval::ValueDrawContempt;
|
||||
|
||||
// Decide whether or not to include checks, this fixes also the type of
|
||||
// TT entry depth that we are going to use. Note that in qsearch we use
|
||||
|
||||
Reference in New Issue
Block a user