mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 19:49:14 +00:00
Small cleanup in execute_uci_command()
With a little fall out in siblings functions... No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
a8741bd59f
commit
caa02b0e43
6 changed files with 41 additions and 42 deletions
|
@ -75,8 +75,7 @@ int main(int argc, char* argv[]) {
|
|||
if (argc <= 1)
|
||||
{
|
||||
// Print copyright notice
|
||||
cout << engine_name()
|
||||
<< " by Tord Romstad, Marco Costalba, Joona Kiiski" << endl;
|
||||
cout << engine_name() << " by " << engine_author() << endl;
|
||||
|
||||
if (CpuHasPOPCNT)
|
||||
cout << "Good! CPU has hardware POPCNT." << endl;
|
||||
|
|
|
@ -154,6 +154,8 @@ const string engine_name() {
|
|||
return s.str();
|
||||
}
|
||||
|
||||
const string engine_author() { return "Tord Romstad, Marco Costalba and Joona Kiiski"; }
|
||||
|
||||
|
||||
/// get_system_time() returns the current system time, measured in
|
||||
/// milliseconds.
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
////
|
||||
|
||||
extern const std::string engine_name();
|
||||
extern const std::string engine_author();
|
||||
extern int get_system_time();
|
||||
extern int cpu_count();
|
||||
extern int input_available();
|
||||
|
|
56
src/uci.cpp
56
src/uci.cpp
|
@ -65,24 +65,23 @@ bool execute_uci_command(const string& cmd) {
|
|||
|
||||
static Position pos(StartPositionFEN, false, 0); // The root position
|
||||
UCIParser up(cmd);
|
||||
Value dummy;
|
||||
string token;
|
||||
|
||||
if (!(up >> token)) // operator>>() skips any whitespace
|
||||
return true;
|
||||
up >> token; // operator>>() skips any whitespace
|
||||
|
||||
if (token == "quit")
|
||||
return false;
|
||||
|
||||
if (token == "go")
|
||||
else if (token == "go")
|
||||
return go(pos, up);
|
||||
|
||||
if (token == "uci")
|
||||
{
|
||||
else if (token == "uci")
|
||||
cout << "id name " << engine_name()
|
||||
<< "\nid author Tord Romstad, Marco Costalba, Joona Kiiski\n";
|
||||
print_uci_options();
|
||||
cout << "uciok" << endl;
|
||||
}
|
||||
<< "\nid author " << engine_author()
|
||||
<< "\n" << options_to_uci()
|
||||
<< "\nuciok" << endl;
|
||||
|
||||
else if (token == "ucinewgame")
|
||||
pos.from_fen(StartPositionFEN, false);
|
||||
|
||||
|
@ -95,30 +94,27 @@ bool execute_uci_command(const string& cmd) {
|
|||
else if (token == "setoption")
|
||||
set_option(up);
|
||||
|
||||
// The remaining commands are for debugging purposes only
|
||||
else if (token == "d")
|
||||
pos.print();
|
||||
|
||||
else if (token == "eval")
|
||||
cout << "Incremental mg: " << mg_value(pos.value())
|
||||
<< "\nIncremental eg: " << eg_value(pos.value())
|
||||
<< "\nFull eval: " << evaluate(pos, dummy) << endl;
|
||||
|
||||
else if (token == "key")
|
||||
cout << "key: " << hex << pos.get_key()
|
||||
<< "\nmaterial key: " << pos.get_material_key()
|
||||
<< "\npawn key: " << pos.get_pawn_key() << endl;
|
||||
|
||||
else if (token == "perft")
|
||||
perft(pos, up);
|
||||
|
||||
else if (token == "flip")
|
||||
{
|
||||
Position p(pos, pos.thread());
|
||||
pos.flipped_copy(p);
|
||||
}
|
||||
else if (token == "eval")
|
||||
{
|
||||
Value evalMargin;
|
||||
cout << "Incremental mg: " << mg_value(pos.value())
|
||||
<< "\nIncremental eg: " << eg_value(pos.value())
|
||||
<< "\nFull eval: " << evaluate(pos, evalMargin) << endl;
|
||||
}
|
||||
else if (token == "key")
|
||||
cout << "key: " << hex << pos.get_key()
|
||||
<< "\nmaterial key: " << pos.get_material_key()
|
||||
<< "\npawn key: " << pos.get_pawn_key() << endl;
|
||||
|
||||
else if (token == "perft")
|
||||
perft(pos, up);
|
||||
|
||||
else
|
||||
cout << "Unknown command: " << cmd << endl;
|
||||
|
||||
|
@ -207,13 +203,14 @@ namespace {
|
|||
bool go(Position& pos, UCIParser& up) {
|
||||
|
||||
string token;
|
||||
|
||||
int time[2] = {0, 0}, inc[2] = {0, 0};
|
||||
int movesToGo = 0, depth = 0, nodes = 0, moveTime = 0;
|
||||
bool infinite = false, ponder = false;
|
||||
Move searchMoves[MOVES_MAX];
|
||||
int movesToGo, depth, nodes, moveTime, numOfMoves;
|
||||
bool infinite, ponder;
|
||||
int time[2] = {0, 0}, inc[2] = {0, 0};
|
||||
|
||||
searchMoves[0] = MOVE_NONE;
|
||||
infinite = ponder = false;
|
||||
movesToGo = depth = nodes = moveTime = numOfMoves = 0;
|
||||
|
||||
while (up >> token)
|
||||
{
|
||||
|
@ -239,7 +236,6 @@ namespace {
|
|||
up >> moveTime;
|
||||
else if (token == "searchmoves")
|
||||
{
|
||||
int numOfMoves = 0;
|
||||
while (up >> token)
|
||||
searchMoves[numOfMoves++] = move_from_uci(pos, token);
|
||||
|
||||
|
|
|
@ -118,28 +118,29 @@ void init_uci_options() {
|
|||
}
|
||||
|
||||
|
||||
/// print_uci_options() prints all the UCI options to the standard output,
|
||||
/// in chronological insertion order (the idx field) and in the format
|
||||
/// defined by the UCI protocol.
|
||||
/// options_to_uci() returns a string with all the UCI options in chronological
|
||||
/// insertion order (the idx field) and in the format defined by the UCI protocol.
|
||||
|
||||
void print_uci_options() {
|
||||
string options_to_uci() {
|
||||
|
||||
std::stringstream s;
|
||||
|
||||
for (size_t i = 0; i <= Options.size(); i++)
|
||||
for (OptionsMap::const_iterator it = Options.begin(); it != Options.end(); ++it)
|
||||
if (it->second.idx == i)
|
||||
{
|
||||
const Option& o = it->second;
|
||||
cout << "\noption name " << it->first << " type " << o.type;
|
||||
s << "\noption name " << it->first << " type " << o.type;
|
||||
|
||||
if (o.type != "button")
|
||||
cout << " default " << o.defaultValue;
|
||||
s << " default " << o.defaultValue;
|
||||
|
||||
if (o.type == "spin")
|
||||
cout << " min " << o.minValue << " max " << o.maxValue;
|
||||
s << " min " << o.minValue << " max " << o.maxValue;
|
||||
|
||||
break;
|
||||
}
|
||||
cout << endl;
|
||||
return s.str();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ public:
|
|||
|
||||
private:
|
||||
friend void init_uci_options();
|
||||
friend void print_uci_options();
|
||||
friend std::string options_to_uci();
|
||||
|
||||
std::string defaultValue, currentValue, type;
|
||||
size_t idx;
|
||||
|
@ -75,6 +75,6 @@ typedef std::map<std::string, Option, CaseInsensitiveLess> OptionsMap;
|
|||
|
||||
extern OptionsMap Options;
|
||||
extern void init_uci_options();
|
||||
extern void print_uci_options();
|
||||
extern std::string options_to_uci();
|
||||
|
||||
#endif // !defined(UCIOPTION_H_INCLUDED)
|
||||
|
|
Loading…
Add table
Reference in a new issue