Ejemplo n.º 1
0
 def handle_play(self, color, move):
     if move.lower() == 'pass':
         self.game_state = self.game_state.apply_move(Move.pass_turn())
     elif move.lower() == 'resign':
         self.game_state = self.game_state.apply_move(Move.resign())
     else:
         self.game_state = self.game_state.apply_move(gtp_position_to_coords(move))
     return response.success()
Ejemplo n.º 2
0
 def set_handicap(self):
     if self.handicap == 0:
         self.command_and_response("komi 7.5\n")
         self.sgf.append("KM[7.5]\n")
     else:
         stones = self.command_and_response("fixed_handicap {}\n".format(self.handicap))
         sgf_handicap = "HA[{}]AB".format(self.handicap)
         for pos in stones.split(" "):
             move = gtp_position_to_coords(pos)
             self.game_state = self.game_state.apply_move(move)
             sgf_handicap = sgf_handicap + "[" + self.sgf.coordinates(move) + "]"
         self.sgf.append(sgf_handicap + "\n")
Ejemplo n.º 3
0
 def set_handicap(self):
     if self.handicap == 0:
         self.command_and_response('komi 7.5\n')
         self.sgf.append('KM[7.5]\n')
     else:
         stones - self.command_and_response('fixed_handicap {}\n'.format(
             self.handicap))
         sgf_handicap = 'HA[{}]AB'.format(self.handicap)
         for pos in stones.split(' '):
             move = gtp_position_to_coords(pos)
             self.game_state = self.game_state.apply_move(move)
             sgf_handicap = sgf_handicap + '[' + self.sgf.coordinates(
                 move) + ']'
         self.sgf.append(sgf_handicap + '\n')
Ejemplo n.º 4
0
    def play_their_move(self):
        their_name = self.their_color.name
        their_letter = their_name[0].upper()

        pos = self.command_and_response("genmove {}\n".format(their_name))
        if pos.lower() == 'resign':
            self.game_state = self.game_state.apply_move(Move.resign())
            self._stopped = True
        elif pos.lower() == 'pass':
            self.game_state = self.game_state.apply_move(Move.pass_turn())
            self.sgf.append(";{}[]\n".format(their_letter))
            if self.game_state.last_move.is_pass:
                self._stopped = True
        else:
            move = gtp_position_to_coords(pos)
            self.game_state = self.game_state.apply_move(move)
            self.sgf.append(";{}[{}]\n".format(their_letter, self.sgf.coordinates(move)))
Ejemplo n.º 5
0
 def handle_fixed_handicap(self, nstones):
     nstones = int(nstones)
     for stone in HANDICAP_STONES[nstones]:
         self.game_state = self.game_state.apply_move(
             gtp_position_to_coords(stone))
     return response.success()