def SetUp(self): game_params = TkinterGameSetupParams() (player1Type, player1Depth, player2Type, player2Depth) = game_params.GetGameSetupParams() if player1Type == 'AI': if player1Depth > 0: self.ai_players[chess.WHITE] = AI(self.board, chess.WHITE, player1Depth) else: self.ai_players[chess.WHITE] = RandomAI() if player2Type == 'AI': if player2Depth > 0: self.ai_players[chess.BLACK] = AI(self.board, chess.BLACK, player2Depth) else: self.ai_players[chess.BLACK] = RandomAI(self.board)
playerTurn = not playerTurn except (ValueError, IndexError): continue while True: command = input("Enter board size and plane nr: ") cmd = command.split() if len(cmd) == 2: if int(cmd[0]) > 5: if int(cmd[1]) * 2 < int(cmd[0]): break else: print("Too many planes!") else: print("Board too small!") else: print("Invalid input!") boardPlayer = Board(int(cmd[0])) boardAI = Board(int(cmd[0])) algorithm = RandomAI(int(cmd[0])) pop = RandAIPopulate(boardAI, int(cmd[1])) game = Game(boardPlayer, boardAI, algorithm, int(cmd[1])) ui = UI(game) ui.start()
factorial(player_count / factorial(player_count - 2))) return round_count * permutation_count def _get_print_interval(round_count, player_count, print_count): interval = int(_get_match_count(round_count, player_count) / print_count) return interval if interval != 0 else 1 if __name__ == "__main__": game = TicTacToe() from timeit import default_timer as timer p1 = Player("player1", WeightedGameStateAI()) p2 = Player("player2", WeightedGameStateAI()) p3 = Player("player3", RandomAI()) start = timer() # Training round game.play_tournament(50, [p1, p2, p3]) stop = timer() print("Training finished in {0} seconds.".format(stop - start)) start = timer() # Actual tournament res = game.play_tournament(10, [p1, p2, p3]) stop = timer() print("Tournament finished in {0} seconds.".format(stop - start)) print("Results:\n{0}".format(res))