+ HashProbeRequest request;
+ request.set_fen(buf);
+
+ HashProbeResponse response;
+ ClientContext context;
+ 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()))) << " ";
+ }
+ 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;
+ } else {
+ std::cout << "ERROR" << std::endl;
+ }