- o.push_back(Option("Use Search Log", false));
- o.push_back(Option("Search Log Filename", "SearchLog.txt"));
- o.push_back(Option("Book File", "book.bin"));
- o.push_back(Option("Mobility (Middle Game)", 100, 0, 200));
- o.push_back(Option("Mobility (Endgame)", 100, 0, 200));
- o.push_back(Option("Pawn Structure (Middle Game)", 100, 0, 200));
- o.push_back(Option("Pawn Structure (Endgame)", 100, 0, 200));
- o.push_back(Option("Passed Pawns (Middle Game)", 100, 0, 200));
- o.push_back(Option("Passed Pawns (Endgame)", 100, 0, 200));
- o.push_back(Option("Space", 100, 0, 200));
- o.push_back(Option("Aggressiveness", 100, 0, 200));
- o.push_back(Option("Cowardice", 100, 0, 200));
- o.push_back(Option("King Safety Curve", "Quadratic", COMBO));
-
- o.back().comboValues.push_back("Quadratic");
- o.back().comboValues.push_back("Linear"); /*, "From File"*/
-
- o.push_back(Option("King Safety Coefficient", 40, 1, 100));
- o.push_back(Option("King Safety X Intercept", 0, 0, 20));
- o.push_back(Option("King Safety Max Slope", 30, 10, 100));
- o.push_back(Option("King Safety Max Value", 500, 100, 1000));
- o.push_back(Option("Queen Contact Check Bonus", 3, 0, 8));
- o.push_back(Option("Queen Check Bonus", 2, 0, 4));
- o.push_back(Option("Rook Check Bonus", 1, 0, 4));
- o.push_back(Option("Bishop Check Bonus", 1, 0, 4));
- o.push_back(Option("Knight Check Bonus", 1, 0, 4));
- o.push_back(Option("Discovered Check Bonus", 3, 0, 8));
- o.push_back(Option("Mate Threat Bonus", 3, 0, 8));
- o.push_back(Option("Check Extension (PV nodes)", 2, 0, 2));
- o.push_back(Option("Check Extension (non-PV nodes)", 1, 0, 2));
- o.push_back(Option("Single Reply Extension (PV nodes)", 2, 0, 2));
- o.push_back(Option("Single Reply Extension (non-PV nodes)", 2, 0, 2));
- o.push_back(Option("Mate Threat Extension (PV nodes)", 0, 0, 2));
- o.push_back(Option("Mate Threat Extension (non-PV nodes)", 0, 0, 2));
- o.push_back(Option("Pawn Push to 7th Extension (PV nodes)", 1, 0, 2));
- o.push_back(Option("Pawn Push to 7th Extension (non-PV nodes)", 1, 0, 2));
- o.push_back(Option("Passed Pawn Extension (PV nodes)", 1, 0, 2));
- o.push_back(Option("Passed Pawn Extension (non-PV nodes)", 0, 0, 2));
- o.push_back(Option("Pawn Endgame Extension (PV nodes)", 2, 0, 2));
- o.push_back(Option("Pawn Endgame Extension (non-PV nodes)", 2, 0, 2));
- o.push_back(Option("Full Depth Moves (PV nodes)", 14, 1, 100));
- o.push_back(Option("Full Depth Moves (non-PV nodes)", 3, 1, 100));
- o.push_back(Option("Threat Depth", 5, 0, 100));
- o.push_back(Option("Selective Plies", 7, 0, 10));
- o.push_back(Option("Null driven IID", false));
- o.push_back(Option("Futility Pruning (Main Search)", true));
- o.push_back(Option("Futility Pruning (Quiescence Search)", true));
- o.push_back(Option("Futility Margin (Quiescence Search)", 50, 0, 1000));
- o.push_back(Option("Futility Margin Scale Factor (Main Search)", 100, 0, 1000));
- o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
- o.push_back(Option("Razoring Margin", 300, 150, 600));
- o.push_back(Option("LSN filtering", true));
- o.push_back(Option("LSN Time Margin (sec)", 4, 1, 10));
- o.push_back(Option("LSN Value Margin", 200, 100, 600));
- o.push_back(Option("Randomness", 0, 0, 10));
- o.push_back(Option("Minimum Split Depth", 4, 4, 7));
- o.push_back(Option("Maximum Number of Threads per Split Point", 5, 4, 8));
- o.push_back(Option("Threads", 1, 1, 8));
- o.push_back(Option("Hash", 32, 4, 4096));
- o.push_back(Option("Clear Hash", false, BUTTON));
- o.push_back(Option("Ponder", true));
- o.push_back(Option("OwnBook", true));
- o.push_back(Option("MultiPV", 1, 1, 500));
- o.push_back(Option("UCI_ShowCurrLine", false));
- o.push_back(Option("UCI_Chess960", false));
+ o["Use Search Log"] = Option(false);
+ o["Search Log Filename"] = Option("SearchLog.txt");
+ o["Book File"] = Option("book.bin");
+ o["Best Book Move"] = Option(false);
+ o["Mobility (Middle Game)"] = Option(100, 0, 200);
+ o["Mobility (Endgame)"] = Option(100, 0, 200);
+ o["Pawn Structure (Middle Game)"] = Option(100, 0, 200);
+ o["Pawn Structure (Endgame)"] = Option(100, 0, 200);
+ o["Passed Pawns (Middle Game)"] = Option(100, 0, 200);
+ o["Passed Pawns (Endgame)"] = Option(100, 0, 200);
+ o["Space"] = Option(100, 0, 200);
+ o["Aggressiveness"] = Option(100, 0, 200);
+ o["Cowardice"] = Option(100, 0, 200);
+ o["Check Extension (PV nodes)"] = Option(2, 0, 2);
+ o["Check Extension (non-PV nodes)"] = Option(1, 0, 2);
+ o["Single Evasion Extension (PV nodes)"] = Option(2, 0, 2);
+ o["Single Evasion Extension (non-PV nodes)"] = Option(2, 0, 2);
+ o["Mate Threat Extension (PV nodes)"] = Option(0, 0, 2);
+ o["Mate Threat Extension (non-PV nodes)"] = Option(0, 0, 2);
+ o["Pawn Push to 7th Extension (PV nodes)"] = Option(1, 0, 2);
+ o["Pawn Push to 7th Extension (non-PV nodes)"] = Option(1, 0, 2);
+ o["Passed Pawn Extension (PV nodes)"] = Option(1, 0, 2);
+ o["Passed Pawn Extension (non-PV nodes)"] = Option(0, 0, 2);
+ o["Pawn Endgame Extension (PV nodes)"] = Option(2, 0, 2);
+ o["Pawn Endgame Extension (non-PV nodes)"] = Option(2, 0, 2);
+ o["Randomness"] = Option(0, 0, 10);
+ o["Minimum Split Depth"] = Option(4, 4, 7);
+ o["Maximum Number of Threads per Split Point"] = Option(5, 4, 8);
+ o["Threads"] = Option(1, 1, MAX_THREADS);
+ o["Hash"] = Option(32, 4, 8192);
+ o["Clear Hash"] = Option(false, BUTTON);
+ o["New Game"] = Option(false, BUTTON);
+ o["Ponder"] = Option(true);
+ o["OwnBook"] = Option(true);
+ o["MultiPV"] = Option(1, 1, 500);
+ o["UCI_Chess960"] = 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
+ for (Options::iterator it = o.begin(); it != o.end(); ++it)
+ it->second.name = it->first;