Handle USI win claims
authorH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 21 Sep 2016 12:26:07 +0000 (14:26 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 21 Sep 2016 12:26:07 +0000 (14:26 +0200)
USI engines can emit 'bestmove win' to claim a win, e.g. because
of the point count in an impasse situation. This is traslated to
a CECP result claim in favor of the side to move, with REASON "claim".

UCI2WB.c

index c3129f5..459c748 100644 (file)
--- a/UCI2WB.c
+++ b/UCI2WB.c
@@ -251,6 +251,7 @@ Engine2GUI()
            // move was a move to be played\r
            if(p = strstr(line+8, " draw")) *p = 0, printf("offer draw\n"); // UCCI\r
            if(strstr(line+9, "resign")) { printf("resign\n"); computer = NONE; }\r
+           if(strstr(line+9, "win")) { printf("%s {claim}\n", stm== WHITE ? "1-0" :"0-1"); computer = NONE; } // USI\r
            if(strstr(line+9, "(none)") || strstr(line+9, "null") ||\r
               strstr(line+9, "0000")) { printf("%s\n", lastScore < -99999 ? "resign" : "1/2-1/2 {stalemate}"); computer = NONE; }\r
            sscanf(line, "bestmove %s", move[moveNr++]);\r