1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 16:53:09 +00: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:
Marco Costalba 2013-03-02 13:20:40 +01:00
parent 0d68b523a3
commit def50020ad

View file

@ -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;