def run_one_game(player_1: ANET, player_2: ANET, visualize: bool) -> int: """ Runs excatly one game with the provided players. """ world = SimulatedWorldFactory.get_simulated_world() current_state = world.reset() if visualize and parameters.GAME_TYPE == Game.Hex: Visualize.initialize_board(current_state) players = (player_1, player_2) i = 0 winner = 0 while not world.is_final_state(): legal_actions = world.get_legal_actions() action = players[i].choose_greedy(current_state, legal_actions) current_state, winner = world.step(action) # Alternating players i = (i + 1) % 2 if visualize and parameters.GAME_TYPE == Game.Hex: Visualize.draw_board(current_state, winner, str(player_1), str(player_2)) print(f'Player {winner} won the game.') return winner
def __init__(self): self.__board_type = parameters.BOARD_TYPE if parameters.BOARD_TYPE == Shape.Diamond: self.__game_board = Diamond(parameters.BOARD_TYPE, parameters.SIZE, parameters.HOLES) Visualize.initialize_board(self.__game_board.get_board(), self.__game_board._edges, self.__board_type) else: self.__game_board = Triangle(parameters.BOARD_TYPE, parameters.SIZE, parameters.HOLES) Visualize.initialize_board(self.__game_board.get_board(), self.__game_board._edges, self.__board_type) self.__peg_history = [] self.__memoized_legal_actions = {} print('Initial board:') print(self.__game_board)