mirror of
https://github.com/sockspls/badfish
synced 2025-07-12 03:59:15 +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)
|
if (argc <= 1)
|
||||||
{
|
{
|
||||||
// Print copyright notice
|
// Print copyright notice
|
||||||
cout << engine_name()
|
cout << engine_name() << " by " << engine_author() << endl;
|
||||||
<< " by Tord Romstad, Marco Costalba, Joona Kiiski" << endl;
|
|
||||||
|
|
||||||
if (CpuHasPOPCNT)
|
if (CpuHasPOPCNT)
|
||||||
cout << "Good! CPU has hardware POPCNT." << endl;
|
cout << "Good! CPU has hardware POPCNT." << endl;
|
||||||
|
|
|
@ -154,6 +154,8 @@ const string engine_name() {
|
||||||
return s.str();
|
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
|
/// get_system_time() returns the current system time, measured in
|
||||||
/// milliseconds.
|
/// milliseconds.
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
////
|
////
|
||||||
|
|
||||||
extern const std::string engine_name();
|
extern const std::string engine_name();
|
||||||
|
extern const std::string engine_author();
|
||||||
extern int get_system_time();
|
extern int get_system_time();
|
||||||
extern int cpu_count();
|
extern int cpu_count();
|
||||||
extern int input_available();
|
extern int input_available();
|
||||||
|
|
44
src/uci.cpp
44
src/uci.cpp
|
@ -65,24 +65,23 @@ bool execute_uci_command(const string& cmd) {
|
||||||
|
|
||||||
static Position pos(StartPositionFEN, false, 0); // The root position
|
static Position pos(StartPositionFEN, false, 0); // The root position
|
||||||
UCIParser up(cmd);
|
UCIParser up(cmd);
|
||||||
|
Value dummy;
|
||||||
string token;
|
string token;
|
||||||
|
|
||||||
if (!(up >> token)) // operator>>() skips any whitespace
|
up >> token; // operator>>() skips any whitespace
|
||||||
return true;
|
|
||||||
|
|
||||||
if (token == "quit")
|
if (token == "quit")
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (token == "go")
|
else if (token == "go")
|
||||||
return go(pos, up);
|
return go(pos, up);
|
||||||
|
|
||||||
if (token == "uci")
|
else if (token == "uci")
|
||||||
{
|
|
||||||
cout << "id name " << engine_name()
|
cout << "id name " << engine_name()
|
||||||
<< "\nid author Tord Romstad, Marco Costalba, Joona Kiiski\n";
|
<< "\nid author " << engine_author()
|
||||||
print_uci_options();
|
<< "\n" << options_to_uci()
|
||||||
cout << "uciok" << endl;
|
<< "\nuciok" << endl;
|
||||||
}
|
|
||||||
else if (token == "ucinewgame")
|
else if (token == "ucinewgame")
|
||||||
pos.from_fen(StartPositionFEN, false);
|
pos.from_fen(StartPositionFEN, false);
|
||||||
|
|
||||||
|
@ -95,22 +94,14 @@ bool execute_uci_command(const string& cmd) {
|
||||||
else if (token == "setoption")
|
else if (token == "setoption")
|
||||||
set_option(up);
|
set_option(up);
|
||||||
|
|
||||||
// The remaining commands are for debugging purposes only
|
|
||||||
else if (token == "d")
|
else if (token == "d")
|
||||||
pos.print();
|
pos.print();
|
||||||
|
|
||||||
else if (token == "flip")
|
|
||||||
{
|
|
||||||
Position p(pos, pos.thread());
|
|
||||||
pos.flipped_copy(p);
|
|
||||||
}
|
|
||||||
else if (token == "eval")
|
else if (token == "eval")
|
||||||
{
|
|
||||||
Value evalMargin;
|
|
||||||
cout << "Incremental mg: " << mg_value(pos.value())
|
cout << "Incremental mg: " << mg_value(pos.value())
|
||||||
<< "\nIncremental eg: " << eg_value(pos.value())
|
<< "\nIncremental eg: " << eg_value(pos.value())
|
||||||
<< "\nFull eval: " << evaluate(pos, evalMargin) << endl;
|
<< "\nFull eval: " << evaluate(pos, dummy) << endl;
|
||||||
}
|
|
||||||
else if (token == "key")
|
else if (token == "key")
|
||||||
cout << "key: " << hex << pos.get_key()
|
cout << "key: " << hex << pos.get_key()
|
||||||
<< "\nmaterial key: " << pos.get_material_key()
|
<< "\nmaterial key: " << pos.get_material_key()
|
||||||
|
@ -119,6 +110,11 @@ bool execute_uci_command(const string& cmd) {
|
||||||
else if (token == "perft")
|
else if (token == "perft")
|
||||||
perft(pos, up);
|
perft(pos, up);
|
||||||
|
|
||||||
|
else if (token == "flip")
|
||||||
|
{
|
||||||
|
Position p(pos, pos.thread());
|
||||||
|
pos.flipped_copy(p);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cout << "Unknown command: " << cmd << endl;
|
cout << "Unknown command: " << cmd << endl;
|
||||||
|
|
||||||
|
@ -207,13 +203,14 @@ namespace {
|
||||||
bool go(Position& pos, UCIParser& up) {
|
bool go(Position& pos, UCIParser& up) {
|
||||||
|
|
||||||
string token;
|
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];
|
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;
|
searchMoves[0] = MOVE_NONE;
|
||||||
|
infinite = ponder = false;
|
||||||
|
movesToGo = depth = nodes = moveTime = numOfMoves = 0;
|
||||||
|
|
||||||
while (up >> token)
|
while (up >> token)
|
||||||
{
|
{
|
||||||
|
@ -239,7 +236,6 @@ namespace {
|
||||||
up >> moveTime;
|
up >> moveTime;
|
||||||
else if (token == "searchmoves")
|
else if (token == "searchmoves")
|
||||||
{
|
{
|
||||||
int numOfMoves = 0;
|
|
||||||
while (up >> token)
|
while (up >> token)
|
||||||
searchMoves[numOfMoves++] = move_from_uci(pos, 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,
|
/// options_to_uci() returns a string with all the UCI options in chronological
|
||||||
/// in chronological insertion order (the idx field) and in the format
|
/// insertion order (the idx field) and in the format defined by the UCI protocol.
|
||||||
/// 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 (size_t i = 0; i <= Options.size(); i++)
|
||||||
for (OptionsMap::const_iterator it = Options.begin(); it != Options.end(); ++it)
|
for (OptionsMap::const_iterator it = Options.begin(); it != Options.end(); ++it)
|
||||||
if (it->second.idx == i)
|
if (it->second.idx == i)
|
||||||
{
|
{
|
||||||
const Option& o = it->second;
|
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")
|
if (o.type != "button")
|
||||||
cout << " default " << o.defaultValue;
|
s << " default " << o.defaultValue;
|
||||||
|
|
||||||
if (o.type == "spin")
|
if (o.type == "spin")
|
||||||
cout << " min " << o.minValue << " max " << o.maxValue;
|
s << " min " << o.minValue << " max " << o.maxValue;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cout << endl;
|
return s.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend void init_uci_options();
|
friend void init_uci_options();
|
||||||
friend void print_uci_options();
|
friend std::string options_to_uci();
|
||||||
|
|
||||||
std::string defaultValue, currentValue, type;
|
std::string defaultValue, currentValue, type;
|
||||||
size_t idx;
|
size_t idx;
|
||||||
|
@ -75,6 +75,6 @@ typedef std::map<std::string, Option, CaseInsensitiveLess> OptionsMap;
|
||||||
|
|
||||||
extern OptionsMap Options;
|
extern OptionsMap Options;
|
||||||
extern void init_uci_options();
|
extern void init_uci_options();
|
||||||
extern void print_uci_options();
|
extern std::string options_to_uci();
|
||||||
|
|
||||||
#endif // !defined(UCIOPTION_H_INCLUDED)
|
#endif // !defined(UCIOPTION_H_INCLUDED)
|
||||||
|
|
Loading…
Add table
Reference in a new issue