diff --git a/AUTHORS b/AUTHORS index f1675860..8caa2285 100644 --- a/AUTHORS +++ b/AUTHORS @@ -148,6 +148,7 @@ Lucas Braesch (lucasart) Lyudmil Antonov (lantonov) Maciej Żenczykowski (zenczykowski) Malcolm Campbell (xoto10) +Mark Marosi (Mapika) Mark Tenzer (31m059) marotear Mathias Parnaudeau (mparnaudeau) diff --git a/src/search.cpp b/src/search.cpp index 857a8d47..0af54b4f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1004,6 +1004,8 @@ moves_loop: // When in check, search starts here movedPiece = pos.moved_piece(move); givesCheck = pos.gives_check(move); + (ss + 1)->quietMoveStreak = (!capture && !givesCheck) ? (ss->quietMoveStreak + 1) : 0; + // Calculate new depth for this move newDepth = depth - 1; @@ -1198,6 +1200,9 @@ moves_loop: // When in check, search starts here if ((ss + 1)->cutoffCnt > 2) r += 1036 + allNode * 848; + if (!capture && !givesCheck && ss->quietMoveStreak >= 2) + r += (ss->quietMoveStreak - 1) * 50; + // For first picked move (ttMove) reduce reduction else if (move == ttData.move) r -= 2006; diff --git a/src/search.h b/src/search.h index 0c041c82..5caff10e 100644 --- a/src/search.h +++ b/src/search.h @@ -76,6 +76,7 @@ struct Stack { int cutoffCnt; int reduction; bool isPvNode; + int quietMoveStreak; };