- std::cout << response.found() << " "
- << UCI::square(from_sq(Move(response.move())))
- << UCI::square(to_sq(Move(response.move()))) << " ";
- switch (response.bound()) {
- case HashProbeResponse::BOUND_NONE:
- case HashProbeResponse::BOUND_EXACT:
- 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;
+ 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;
+ }
+ std::cout << " " << UCI::value(Value(line.value())) << " ";
+ std::cout << line.depth() << std::endl;
+ }
+ std::cout << "END" << std::endl;