X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=8993a4b05fbf3069c8f55e092cfa4d27ee6b8dc5;hp=e008bec1e45d8a063cca7d05dd803411d7cb38c6;hb=93349d0dbd22f063b39e6815c02835a4748fffbc;hpb=217840a6a5a40b516cab59a450a9f36352997240 diff --git a/src/search.cpp b/src/search.cpp index e008bec1..8993a4b0 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -335,7 +335,12 @@ void Thread::search() { beta = VALUE_INFINITE; multiPV = Options["MultiPV"]; - Skill skill(Options["Skill Level"]); + // Pick integer skill levels, but non-deterministically round up or down + // such that the average integer skill corresponds to the input floating point one. + PRNG rng(now()); + int intLevel = int(Options["Skill Level"]) + + ((Options["Skill Level"] - int(Options["Skill Level"])) * 1024 > rng.rand() % 1024 ? 1 : 0); + Skill skill(intLevel); // When playing with strength handicap enable MultiPV search that we will // use behind the scenes to retrieve a set of possible moves. @@ -1065,7 +1070,7 @@ moves_loop: // When in check, search starts from here Depth r = reduction(improving, depth, moveCount); // Reduction if other threads are searching this position. - if (th.marked()) + if (th.marked()) r += ONE_PLY; // Decrease reduction if position is or has been on the PV