mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Fix some more UCI output
further fall-out of the refactoring, fixes: * the position object in UCI is not never getting updated if position token is used * duplicate string of " wdl " See also: https://discord.com/channels/435943710472011776/1032922913499783169/1228227522945351690 https://discord.com/channels/435943710472011776/813919248455827515/1228288106449338398 closes https://github.com/official-stockfish/Stockfish/pull/5168 No functional change Co-Authored-By: disservin <45608332+disservin@users.noreply.github.com>
This commit is contained in:
parent
e58b3b4665
commit
14f6eab07d
2 changed files with 6 additions and 5 deletions
|
@ -137,7 +137,7 @@ void UCIEngine::loop() {
|
||||||
else if (token == "go")
|
else if (token == "go")
|
||||||
go(pos, is);
|
go(pos, is);
|
||||||
else if (token == "position")
|
else if (token == "position")
|
||||||
position(is);
|
position(pos, is);
|
||||||
else if (token == "ucinewgame")
|
else if (token == "ucinewgame")
|
||||||
engine.search_clear();
|
engine.search_clear();
|
||||||
else if (token == "isready")
|
else if (token == "isready")
|
||||||
|
@ -268,7 +268,7 @@ void UCIEngine::bench(Position& pos, std::istream& args) {
|
||||||
else if (token == "setoption")
|
else if (token == "setoption")
|
||||||
setoption(is);
|
setoption(is);
|
||||||
else if (token == "position")
|
else if (token == "position")
|
||||||
position(is);
|
position(pos, is);
|
||||||
else if (token == "ucinewgame")
|
else if (token == "ucinewgame")
|
||||||
{
|
{
|
||||||
engine.search_clear(); // search_clear may take a while
|
engine.search_clear(); // search_clear may take a while
|
||||||
|
@ -294,7 +294,7 @@ void UCIEngine::setoption(std::istringstream& is) {
|
||||||
engine.get_options().setoption(is);
|
engine.get_options().setoption(is);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UCIEngine::position(std::istringstream& is) {
|
void UCIEngine::position(Position& pos, std::istringstream& is) {
|
||||||
std::string token, fen;
|
std::string token, fen;
|
||||||
|
|
||||||
is >> token;
|
is >> token;
|
||||||
|
@ -317,6 +317,7 @@ void UCIEngine::position(std::istringstream& is) {
|
||||||
moves.push_back(token);
|
moves.push_back(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pos.set(fen, engine.get_options()["UCI_Chess960"], pos.state());
|
||||||
engine.set_position(fen, moves);
|
engine.set_position(fen, moves);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,7 +394,7 @@ std::string UCIEngine::wdl(Value v, const Position& pos) {
|
||||||
int wdl_w = win_rate_model(v, pos);
|
int wdl_w = win_rate_model(v, pos);
|
||||||
int wdl_l = win_rate_model(-v, pos);
|
int wdl_l = win_rate_model(-v, pos);
|
||||||
int wdl_d = 1000 - wdl_w - wdl_l;
|
int wdl_d = 1000 - wdl_w - wdl_l;
|
||||||
ss << " wdl " << wdl_w << " " << wdl_d << " " << wdl_l;
|
ss << wdl_w << " " << wdl_d << " " << wdl_l;
|
||||||
|
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ class UCIEngine {
|
||||||
|
|
||||||
void go(Position& pos, std::istringstream& is);
|
void go(Position& pos, std::istringstream& is);
|
||||||
void bench(Position& pos, std::istream& args);
|
void bench(Position& pos, std::istream& args);
|
||||||
void position(std::istringstream& is);
|
void position(Position& pos, std::istringstream& is);
|
||||||
void setoption(std::istringstream& is);
|
void setoption(std::istringstream& is);
|
||||||
|
|
||||||
static void on_update_no_moves(const Engine::InfoShort& info);
|
static void on_update_no_moves(const Engine::InfoShort& info);
|
||||||
|
|
Loading…
Add table
Reference in a new issue