def play_game(p1, p2, num_sims=1): p1_wins = 0 p2_wins = 0 for i in range(num_sims): #New board board = Board(False, False) board.build_board() board.print() #If a player wins break while True: board = p1.sim_turn(board) winner = check_winner(board) if winner == 1: p1_wins += 1 break elif winner == 2: p2_wins += 1 break board = p2.sim_turn(board) winner = check_winner(board) if winner == 1: p1_wins += 1 break elif winner == 2: p2_wins += 1 break print("{} :player 1 wins".format(p1_wins)) print("{} :player 2 wins".format(p2_wins))
win_percent_history.append(win_percent) print(move_two) board.make_move(move_two) board.print() push_move, win_percent = push(board, whichPlayer, numSim) win_percent_history.append(win_percent) print(push_move) if push_move != None: board.make_move(push_move, push=True) board.print() print(board.turn) return win_percent_history #This simulates an entire game between two MCTS players. def simulate_game(board, whichPlayer, numSim): win_percent_history = [] while board.turn != 0: win_percent = monteCarloPlayer(board, whichPlayer, numSim) whichPlayer *= -1 win_percent_history.append(win_percent) return win_percent_history #End of MCTS game simulator if __name__ == "__main__": board = Board(False, False) board.build_board()