1
0
Fork 0
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:
Marco Costalba 2011-01-09 15:57:18 +01:00
parent a8741bd59f
commit caa02b0e43
6 changed files with 41 additions and 42 deletions

View file

@ -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;

View file

@ -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.

View file

@ -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();

View file

@ -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);

View file

@ -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();
}

View file

@ -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)