When returning gRPC probes, report scores from white's perspective.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 17 Mar 2016 09:45:38 +0000 (10:45 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 24 Nov 2018 10:17:41 +0000 (11:17 +0100)
src/main.cpp

index b6639f2..33a8f52 100644 (file)
@@ -53,11 +53,25 @@ public:
                TTEntry *entry = TT.probe(pos.key(), found);
                response->set_found(found);
                if (found) {
+                       Value value = entry->value();
+                       Value eval = entry->eval();
+                       Bound bound = entry->bound();
+
+                       if (pos.side_to_move() == BLACK) {
+                               value = -value;
+                               eval = -eval;
+                               if (bound == BOUND_UPPER) {
+                                       bound = BOUND_LOWER;
+                               } else if (bound == BOUND_LOWER) {
+                                       bound = BOUND_UPPER;
+                               }
+                       }
+
                        response->set_move(entry->move());
-                       response->set_value(entry->value());
-                       response->set_eval(entry->eval());
                        response->set_depth(entry->depth());
-                       response->set_bound(HashProbeResponse::ValueBound(entry->bound()));
+                       response->set_eval(eval);
+                       response->set_value(value);
+                       response->set_bound(HashProbeResponse::ValueBound(bound));
                }
                return Status::OK;
        }