mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-22 18:17:02 +08:00
@@ -606,6 +606,15 @@ namespace {
|
|||||||
: ttHit ? tte->move() : MOVE_NONE;
|
: ttHit ? tte->move() : MOVE_NONE;
|
||||||
ttPv = (ttHit && tte->is_pv()) || (PvNode && depth > 4 * ONE_PLY);
|
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
|
// At non-PV nodes we check for an early TT cutoff
|
||||||
if ( !PvNode
|
if ( !PvNode
|
||||||
&& ttHit
|
&& ttHit
|
||||||
@@ -927,6 +936,14 @@ moves_loop: // When in check, search starts from here
|
|||||||
else if (type_of(move) == CASTLING)
|
else if (type_of(move) == CASTLING)
|
||||||
extension = ONE_PLY;
|
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
|
// Passed pawn extension
|
||||||
else if ( move == ss->killers[0]
|
else if ( move == ss->killers[0]
|
||||||
&& pos.advanced_pawn_push(move)
|
&& pos.advanced_pawn_push(move)
|
||||||
|
|||||||
Reference in New Issue
Block a user