mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-21 09:37:16 +08:00
Fix easy re-capture case
We detect an easy move as a recapture with an high margin on the second best move. Unfortunatly the recapture detection is broken becuase we identify as a recapture any move that follows an opponent's previous capture ! This patch fix the logic to correctly detect a real re-capture. No functional change.
This commit is contained in:
@@ -442,11 +442,16 @@ namespace {
|
|||||||
if (Time::now() - SearchTime > (TimeMgr.available_time() * 62) / 100)
|
if (Time::now() - SearchTime > (TimeMgr.available_time() * 62) / 100)
|
||||||
stop = true;
|
stop = true;
|
||||||
|
|
||||||
|
bool recapture = pos.is_capture(RootMoves[0].pv[0])
|
||||||
|
&& pos.captured_piece_type()
|
||||||
|
&& SetupMoves->size()
|
||||||
|
&& to_sq(SetupMoves->back()) == to_sq(RootMoves[0].pv[0]);
|
||||||
|
|
||||||
// Stop search early if one move seems to be much better than others
|
// Stop search early if one move seems to be much better than others
|
||||||
if ( depth >= 12
|
if ( depth >= 12
|
||||||
&& !stop
|
&& !stop
|
||||||
&& PVSize == 1
|
&& PVSize == 1
|
||||||
&& ( (bestMoveNeverChanged && pos.captured_piece_type())
|
&& ( (bestMoveNeverChanged && recapture)
|
||||||
|| Time::now() - SearchTime > (TimeMgr.available_time() * 40) / 100))
|
|| Time::now() - SearchTime > (TimeMgr.available_time() * 40) / 100))
|
||||||
{
|
{
|
||||||
Value rBeta = bestValue - 2 * PawnValueMg;
|
Value rBeta = bestValue - 2 * PawnValueMg;
|
||||||
|
|||||||
Reference in New Issue
Block a user