Fix mate score for XBoard protocol (#44)
authorFabian Fichter <ianfab@users.noreply.github.com>
Sun, 3 Nov 2019 18:05:47 +0000 (19:05 +0100)
committerFabian Fichter <ianfab@users.noreply.github.com>
Sun, 3 Nov 2019 18:05:47 +0000 (19:05 +0100)
src/types.h
src/uci.cpp

index b7ccc21..67a664e 100644 (file)
@@ -303,7 +303,7 @@ enum Value : int {
   VALUE_DRAW      = 0,
   VALUE_KNOWN_WIN = 10000,
   VALUE_MATE      = 32000,
-  XBOARD_VALUE_MATE = 100000,
+  XBOARD_VALUE_MATE = 200000,
   VALUE_INFINITE  = 32001,
   VALUE_NONE      = 32002,
 
index 5f0249b..ed61569 100644 (file)
@@ -471,7 +471,7 @@ string UCI::value(Value v) {
       if (abs(v) < VALUE_MATE - MAX_PLY)
           ss << v * 100 / PawnValueEg;
       else
-          ss << (v > 0 ? XBOARD_VALUE_MATE + v - VALUE_MATE + 1 : -XBOARD_VALUE_MATE + VALUE_MATE + v - 1) / 2;
+          ss << (v > 0 ? XBOARD_VALUE_MATE + VALUE_MATE - v + 1 : -XBOARD_VALUE_MATE - VALUE_MATE - v - 1) / 2;
   } else
 
   if (abs(v) < VALUE_MATE - MAX_PLY)