def test_board_occupied_and_place(self): board = self._get_empty_board() point = str_to_point("2-3") stone_type = StoneEnum.WHITE self.assertFalse(board.occupied(point)) board.place_stone(stone_type, point) self.assertTrue(board.occupied(point))
def choose_move(self, boards): if not self.move_referee.valid_history(self.stone_type, boards): return "This history makes no sense!" else: board = boards[0] for x in range(len(board)): for y in range(len(board[0])): if board[x][y].get_raw() == WHITE_STONE: self.buttons["{}-{}".format(x + 1, y + 1)].configure(bg="white") elif board[x][y].get_raw() == BLACK_STONE: self.buttons["{}-{}".format(x + 1, y + 1)].configure(bg="black") else: self.buttons["{}-{}".format( x + 1, y + 1)].configure(bg="goldenrod") while not self.click: self.root.update() self.root.update_idletasks() if self.click == "pass": self.click = None return PASS ret = str_to_point(self.click) #if not self.move_referee.valid_move(stone_type=self.stone_type, point=ret, boards=boards, current_board=board): # raise Exception("Invalid point.") self.click = None return (ret.x, ret.y)
def choose_move(self, boards): boards_f = [format_board(x.board) for x in boards] send_str = json.dumps([MOVE, boards_f]) ret = self.send_and_receive(send_str) try: return str_to_point(ret) except: return ret
def parse_move(arr): if isinstance(arr[1], str): return Stone(arr[0]).get_type(), arr[1] else: return Stone(arr[0]).get_type(), [ str_to_point(arr[1][0]), [parse_board(board) for board in arr[1][1]] ]
def choose_move(self, boards): try: p_move = self.remote_player_proxy.choose_move(boards) p_move = p_move.replace("\"", "") if p_move == PASS: return PASS else: move_point = str_to_point(p_move) return (move_point.x, move_point.y) except PointException: raise PointException("Invalid move.")
def get_point_and_stone(self): return str_to_point(self.statement_arr[1]), Stone( self.statement_arr[2]).get_type()
def get_point(self): return str_to_point(self.statement_arr[1])
def test_basic_point(self): point = str_to_point("2-3") self.assertEqual(point.x, 1) self.assertEqual(point.y, 2)
def test_get_raw(self): point = str_to_point("3-1") self.assertEqual("3-1", get_raw((point.x, point.y)))
def test_big_point(self): point = str_to_point("20444-3095682") self.assertEqual(point.x, 20443) self.assertEqual(point.y, 3095681)
def format_input(string): if string == PASS: return PASS else: return str_to_point(string)