mirror of
https://github.com/sockspls/badfish
synced 2025-07-13 04:29:15 +00:00
parent
6373fd56e9
commit
e89bc30fdc
1 changed files with 17 additions and 0 deletions
|
@ -606,6 +606,15 @@ namespace {
|
|||
: ttHit ? tte->move() : MOVE_NONE;
|
||||
ttPv = (ttHit && tte->is_pv()) || (PvNode && depth > 4 * ONE_PLY);
|
||||
|
||||
// If position has been searched at higher depths and we are shuffling,
|
||||
// return value_draw.
|
||||
if ( pos.rule50_count() > 36 - 6 * (pos.count<ALL_PIECES>() > 14)
|
||||
&& ss->ply > 36 - 6 * (pos.count<ALL_PIECES>() > 14)
|
||||
&& ttHit
|
||||
&& tte->depth() > depth
|
||||
&& pos.count<PAWN>() > 0)
|
||||
return VALUE_DRAW;
|
||||
|
||||
// At non-PV nodes we check for an early TT cutoff
|
||||
if ( !PvNode
|
||||
&& ttHit
|
||||
|
@ -927,6 +936,14 @@ moves_loop: // When in check, search starts from here
|
|||
else if (type_of(move) == CASTLING)
|
||||
extension = ONE_PLY;
|
||||
|
||||
// Shuffle extension
|
||||
else if ( PvNode
|
||||
&& pos.rule50_count() > 18
|
||||
&& ss->ply > 18
|
||||
&& depth < 3 * ONE_PLY
|
||||
&& ss->ply < 3 * thisThread->rootDepth / ONE_PLY) // To avoid infinite loops
|
||||
extension = ONE_PLY;
|
||||
|
||||
// Passed pawn extension
|
||||
else if ( move == ss->killers[0]
|
||||
&& pos.advanced_pawn_push(move)
|
||||
|
|
Loading…
Add table
Reference in a new issue