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:
parent
0d68b523a3
commit
def50020ad
1 changed files with 6 additions and 1 deletions
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue