mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Introduce "Zugzwang detection" temporary hack for 1.7.1
Add an UCI option "Zugzwang detection" OFF by default that enables correct detection of zugzwang. This is just to let 1.7.1 be 100% compatible with 1.7 and should be removed after release. Verified 100% functional equivalent to 1.7 Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
d720778b2b
commit
f9d3b48ad0
2 changed files with 6 additions and 2 deletions
|
@ -257,7 +257,7 @@ namespace {
|
||||||
int SearchStartTime, MaxNodes, MaxDepth, MaxSearchTime;
|
int SearchStartTime, MaxNodes, MaxDepth, MaxSearchTime;
|
||||||
int AbsoluteMaxSearchTime, ExtraSearchTime, ExactMaxTime;
|
int AbsoluteMaxSearchTime, ExtraSearchTime, ExactMaxTime;
|
||||||
bool UseTimeManagement, InfiniteSearch, PonderSearch, StopOnPonderhit;
|
bool UseTimeManagement, InfiniteSearch, PonderSearch, StopOnPonderhit;
|
||||||
bool FirstRootMove, AbortSearch, Quit, AspirationFailLow;
|
bool FirstRootMove, AbortSearch, Quit, AspirationFailLow, ZugDetection;
|
||||||
|
|
||||||
// Log file
|
// Log file
|
||||||
bool UseLogFile;
|
bool UseLogFile;
|
||||||
|
@ -425,6 +425,7 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
|
||||||
MultiPV = get_option_value_int("MultiPV");
|
MultiPV = get_option_value_int("MultiPV");
|
||||||
Chess960 = get_option_value_bool("UCI_Chess960");
|
Chess960 = get_option_value_bool("UCI_Chess960");
|
||||||
UseLogFile = get_option_value_bool("Use Search Log");
|
UseLogFile = get_option_value_bool("Use Search Log");
|
||||||
|
ZugDetection = get_option_value_bool("Zugzwang detection"); // To be removed after 1.7.1
|
||||||
|
|
||||||
if (UseLogFile)
|
if (UseLogFile)
|
||||||
LogFile.open(get_option_value_string("Search Log Filename").c_str(), std::ios::out | std::ios::app);
|
LogFile.open(get_option_value_string("Search Log Filename").c_str(), std::ios::out | std::ios::app);
|
||||||
|
@ -2315,7 +2316,7 @@ namespace {
|
||||||
|
|
||||||
Value v = value_from_tt(tte->value(), ply);
|
Value v = value_from_tt(tte->value(), ply);
|
||||||
|
|
||||||
return (allowNullmove || !(tte->type() & VALUE_TYPE_NULL))
|
return (allowNullmove || !(tte->type() & VALUE_TYPE_NULL) || !ZugDetection)
|
||||||
|
|
||||||
&& ( tte->depth() >= depth
|
&& ( tte->depth() >= depth
|
||||||
|| v >= Max(value_mate_in(PLY_MAX), beta)
|
|| v >= Max(value_mate_in(PLY_MAX), beta)
|
||||||
|
|
|
@ -113,6 +113,9 @@ namespace {
|
||||||
o["UCI_Chess960"] = Option(false);
|
o["UCI_Chess960"] = Option(false);
|
||||||
o["UCI_AnalyseMode"] = Option(false);
|
o["UCI_AnalyseMode"] = Option(false);
|
||||||
|
|
||||||
|
// Temporary hack for 1.7.1 to be removed in next release
|
||||||
|
o["Zugzwang detection"] = Option(false);
|
||||||
|
|
||||||
// Any option should know its name so to be easily printed
|
// Any option should know its name so to be easily printed
|
||||||
for (Options::iterator it = o.begin(); it != o.end(); ++it)
|
for (Options::iterator it = o.begin(); it != o.end(); ++it)
|
||||||
it->second.name = it->first;
|
it->second.name = it->first;
|
||||||
|
|
Loading…
Add table
Reference in a new issue