Exemplo n.º 1
0
 def get_games_run_per_second(self, num_games):
     game_manager = GameManager()
     red_player = NumWinsAgent(Agent.RED_PLAYER)
     black_player = NumWinsAgent(Agent.BLACK_PLAYER)
     t0 = time.time()
     game_num = 1
     for game in range(num_games):
         print(f"Playing game {game_num}")
         game_num += 1
         game_manager.start_new_game(red_player, black_player)
         while game_manager.is_playing():
             game_manager.play_turn()
     t1 = time.time()
     total_time = t1 - t0
     return num_games / total_time
Exemplo n.º 2
0
class Tournament:
    def __init__(self, player_1, player_2, num_games):
        self.player_1 = player_1
        self.player_2 = player_2
        self.player_wins = []
        self.num_games = num_games
        self.game_manager = GameManager()

    def play_tournament(self):
        self.player_wins = []
        red_player = self.player_1
        black_player = self.player_2
        for game in range(self.num_games):
            num_moves = 0
            if red_player == self.player_1:
                red_player = self.player_2
                black_player = self.player_1
            else:
                red_player = self.player_1
                black_player = self.player_2
            red_player.color = Agent.RED_PLAYER
            black_player.color = Agent.BLACK_PLAYER
            self.game_manager.start_new_game(red_player, black_player)
            while self.game_manager.is_playing():
                self.game_manager.play_turn()
                num_moves += 1
            winner = self.game_manager.get_winner()
            if winner is not None:
                winner_name = 'Player 1'
                if winner == self.player_2:
                    winner_name = 'Player 2'
                color = "RED" if winner.color == Agent.RED_PLAYER else "BLACK"
                agent_type = str(type(winner))
            else:
                winner_name = 'Draw'
                color = "-"
                agent_type = '-'
            self.player_wins.append(
                [winner_name, color, num_moves, agent_type])

    def get_player_wins(self):
        return self.player_wins