Fix Unnecessary Fuego Pondering on CGOS

If you are connecting Fuego to the Computer Go Server using the CGOS Python script version 0.3, Fuego will continue to ponder even after a game has ended if the opposing player resigned. This occurs because there is no standard Resign command for the GTP protocol, and Fuego does not implement the same custom resign command included with the default CGOS clients (cgos-gameover). Fuego implements the “go_set_info result” custom command.

To correct the Python client scripts, two additions are necessary.

In cgosclient.py (around line 357):

        if "+Resign" in result:
            self.logger.info("Game ended because a player resigned!")
            self._sgfGame.setScoreResign(GTPTools.convertColourToConstant(result[0]))
            self._engine.notifyCGOSGameover(result)
            self._engine.notifyClearBoard()

In gtpengine.py (around line 211):

    def notifyCGOSGameover(self, result):
        '''
        Sent cgos-game_over to engine. The calling function must format this
        into B+x.y, B+Resign, B+Time or B+Forfeit to make it SGF compliant.
        '''
        self.logger.info("Notifying GTP engine that game has ended...")
        if "cgos-gameover" in self._supportedCommands:
            self._sendNoResponseCommand("cgos-gameover " + result)
        else:
            self._sendNoResponseCommand("go_set_info result" + result)
        self.logger.info("GTP engine notified.")

If you have Tcl installed on Windows, you can also connect using the Tcl script “cgos3.patched.tcl” included with Fuego where this same issue has been corrected.