mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 01:03:09 +00:00
Enable easy move detection only for recaptures
It could lead to terrible mistakes otherwise, as it happened during a game on playchess when on this position (after white's f4): 2q4r/4b1k1/p3rpp1/3np2p/PpNpNP1P/1P1P2PQ/2P1R3/4R1K1 b - - 0 1 SF moves immediately e5xf4 instead of the correct f5. In general during engine matches it is impossible the opponent leaves a piece hanging or anyhow starts a clear losing sequence. So avoid to fall in subtle traps. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
d98150dffc
commit
78908b7aed
2 changed files with 5 additions and 5 deletions
|
@ -1265,7 +1265,7 @@ int Position::see(Move m) const {
|
|||
{
|
||||
Square capQq = to - pawn_push(sideToMove);
|
||||
|
||||
assert(capturedType == NO_PIECE_TYPE);
|
||||
assert(!capturedType);
|
||||
assert(type_of(piece_on(capQq)) == PAWN);
|
||||
|
||||
// Remove the captured pawn
|
||||
|
|
|
@ -531,15 +531,15 @@ namespace {
|
|||
stop = true;
|
||||
|
||||
// Stop search early if one move seems to be much better than others
|
||||
if ( depth >= 10
|
||||
if ( depth >= 12
|
||||
&& !stop
|
||||
&& ( bestMoveNeverChanged
|
||||
&& ( (bestMoveNeverChanged && pos.captured_piece_type())
|
||||
|| elapsed_time() > (TimeMgr.available_time() * 40) / 100))
|
||||
{
|
||||
Value rBeta = bestValue - EasyMoveMargin;
|
||||
(ss+1)->excludedMove = RootMoves[0].pv[0];
|
||||
(ss+1)->skipNullMove = true;
|
||||
Value v = search<NonPV>(pos, ss+1, rBeta - 1, rBeta, (depth * ONE_PLY) / 2);
|
||||
Value v = search<NonPV>(pos, ss+1, rBeta - 1, rBeta, (depth - 3) * ONE_PLY);
|
||||
(ss+1)->skipNullMove = false;
|
||||
(ss+1)->excludedMove = MOVE_NONE;
|
||||
|
||||
|
@ -701,7 +701,7 @@ namespace {
|
|||
if ( (move = (ss-1)->currentMove) != MOVE_NULL
|
||||
&& (ss-1)->eval != VALUE_NONE
|
||||
&& ss->eval != VALUE_NONE
|
||||
&& pos.captured_piece_type() == NO_PIECE_TYPE
|
||||
&& !pos.captured_piece_type()
|
||||
&& !is_special(move))
|
||||
{
|
||||
Square to = to_sq(move);
|
||||
|
|
Loading…
Add table
Reference in a new issue