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, THREAD_MAX);
- o["Hash"] = Option(32, 4, 2048);
+ 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);
else if (v == "false")
v = "0";
- if (options.find(name) != options.end())
- options[name].currentValue = v;
- else
+ if (options.find(name) == options.end())
+ {
std::cout << "No such option: " << name << std::endl;
+ return;
+ }
+
+ // Normally it's up to the GUI to check for option's limits,
+ // but we could receive the new value directly from the user
+ // by teminal window. So let's check the bounds anyway.
+ Option& opt = options[name];
+
+ if (opt.type == CHECK && v != "0" && v != "1")
+ return;
+
+ else if (opt.type == SPIN)
+ {
+ int val = atoi(v.c_str());
+ if (val < opt.minValue || val > opt.maxValue)
+ return;
+ }
+
+ opt.currentValue = v;
}