Example #1
0
    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
Example #2
0
 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)