X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fclient.cpp;h=a57879050bf0164b61ee14c2b662e3b61eac5818;hp=b3ec68f85cf6226042224bc27f7a8696a14c032f;hb=4455f354f7b3ea7446c6c26dcb2837ca2b7be06f;hpb=90cbc12e9845f1a523ca44bbd2d86a23cc7df883 diff --git a/src/client.cpp b/src/client.cpp index b3ec68f8..a5787905 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -11,6 +11,12 @@ using grpc::Channel; using grpc::ClientContext; using grpc::Status; +using namespace hashprobe; + +std::string FormatMove(const HashProbeMove &move) { + if (move.from_sq().empty()) return "MOVE_NONE"; + return move.pretty(); +} int main(int argc, char** argv) { std::shared_ptr channel(grpc::CreateChannel( @@ -34,31 +40,38 @@ int main(int argc, char** argv) { Status status = stub->Probe(&context, request, &response); if (status.ok()) { - std::cout << response.found() << " "; - if (Move(response.move()) == MOVE_NULL) { - std::cout << "Null-move "; - } else if (Move(response.move()) == MOVE_NONE) { - std::cout << "MOVE_NONE "; - } else { - std::cout << UCI::square(from_sq(Move(response.move()))) - << UCI::square(to_sq(Move(response.move()))) << " "; + for (const HashProbeLine &line : response.line()) { + std::cout << FormatMove(line.move()) << " "; + std::cout << line.found() << " "; + for (const HashProbeMove &move : line.pv()) { + std::cout << FormatMove(move) << ","; + } + std::cout << " "; + switch (line.bound()) { + case HashProbeLine::BOUND_NONE: + std::cout << "?"; + break; + case HashProbeLine::BOUND_EXACT: + std::cout << "=="; + break; + case HashProbeLine::BOUND_UPPER: + std::cout << "<="; + break; + case HashProbeLine::BOUND_LOWER: + std::cout << ">="; + break; + } + switch (line.value().score_type()) { + case HashProbeScore::SCORE_CP: + std::cout << " cp " << line.value().score_cp() << " "; + break; + case HashProbeScore::SCORE_MATE: + std::cout << " mate " << line.value().score_mate() << " "; + break; + } + std::cout << line.depth() << std::endl; } - switch (response.bound()) { - case HashProbeResponse::BOUND_NONE: - std::cout << "?"; - break; - case HashProbeResponse::BOUND_EXACT: - std::cout << "=="; - break; - case HashProbeResponse::BOUND_UPPER: - std::cout << "<="; - break; - case HashProbeResponse::BOUND_LOWER: - std::cout << ">="; - break; - } - std::cout << " " << UCI::value(Value(response.value())) << " "; - std::cout << response.depth() << std::endl; + std::cout << "END" << std::endl; } else { std::cout << "ERROR" << std::endl; }