def test_score(): mvs = ['H8', 'I7', 'G7', 'F10', 'I9', 'G10', 'J10', 'K11', 'F6'] pos_l = [str_pos(x, 'to_pos') for x in mvs[:-1]] board = np.zeros((15, 15), dtype='int8') for i, pos in enumerate(pos_l): board[pos] = 1 - 2 * (i % 2) # Test scoring pos = str_pos('F6', 'to_pos') score = compute_move(board, pos, 1) set_trace()
def unmake_move(self, move): # Change board pos = str_pos(move, 'to_pos') self.board[pos[0], pos[1]] = 0 # Delete the latest score added del self.scores[-1] # Delete the move added self.moves.remove(move)
def test_sort(): mvs = ['H8', 'I7', 'G7', 'H7', 'I9', 'F6', 'J10'] pos_l = [str_pos(x, 'to_pos') for x in mvs] board = np.zeros((15, 15), dtype='int8') for i, pos in enumerate(pos_l): board[pos] = 1 - 2 * (i % 2) # Test sorting pm_l_a = sort_moves(board, -1, 'AI') set_trace()
def make_move(self, move): # Compute score and change board ply_stone = self.opponent_index - self.current_player pos = str_pos(move, 'to_pos') sc_a, sc_d = compute_move(self.board, pos, ply_stone) sc = sc_a + 0.5 * sc_d self.scores.append(sc) self.board[pos[0], pos[1]] = ply_stone # Append to move list self.moves.append(move)
def __init__(self, players, moves=[], show="invisible"): self.players = players self.board = np.zeros((15, 15), dtype='int8') if len(moves) > 0: for i in range(len(moves)): pos = str_pos(moves[i], 'to_pos') self.board[pos[0], pos[1]] = 1 - 2 * (i % 2) self.current_player = 1 + len( moves) % 2 # which player starts depends on the length of moves. self.moves = moves # Record players' moves. self.scores = [] self.display = show