def main(): mcts_wins = 0 draws = 0 mcts_loses = 0 for game in range(100): VF_pickle = open( "/Users/lpothabattula/Desktop/100_Days_of_ML_Code/Day4/TicTacToeValFun.pickle", "rb") ValueFunction = pickle.load(VF_pickle) BoardObj = TicTacToe() currNode = Node(expanded=False, visited=True, TotalSimualtionReward=0, totalNumVisit=1, TicTacToe=BoardObj, parent=None) # print("Initial Board setting") # currNode.TicTacToe.print_board() while not currNode.Terminal: player = currNode.TicTacToe.moveCnt % 2 + 1 if currNode.TicTacToe.moveCnt & 1: x, y = take_action(currNode.TicTacToe.board, Value=ValueFunction, player=player) TicTacToeObj = cp.deepcopy(currNode.TicTacToe) TicTacToeObj.make_move(x, y) nextNode = currNode.compareTo(TicTacToeObj.board) if nextNode is None: nextNode = Node(expanded=False, visited=True, TotalSimualtionReward=0, totalNumVisit=1, TicTacToe=TicTacToeObj, parent=None) else: nextNode = MCTS.MonteCarloTreeSearch(currNode, 0.1) # print("After {} Move".format(nextNode.TicTacToe.moveCnt)) # print(nextNode.TotalSimualtionReward) # print(nextNode.TotalNumVisit) # nextNode.TicTacToe.print_board() currNode = nextNode if currNode.TicTacToe.draw: draws += 1 print("Match {}:Drawn".format(game)) else: if currNode.TicTacToe.moveCnt & 1: mcts_wins += 1 print("Match {}:First Player won".format(game)) else: mcts_loses += 1 print("Match {}:Second Player won".format(game)) print("Final analysis:MCTS vs TD") print("MCTS won {} times".format(mcts_wins)) print("match drawn {} times".format(draws)) print("MCTS lost {} times".format(mcts_loses))
def main(): BoardObj = TicTacToe() currNode = Node(expanded=False, visited=True, TotalSimualtionReward=0, totalNumVisit=1, TicTacToe=BoardObj, parent=None) print("Initial Board setting") currNode.TicTacToe.print_board() while not currNode.Terminal: if currNode.TicTacToe.moveCnt & 1: x = int(raw_input('Enter row position\n')) y = int(raw_input('Enter column position\n')) TicTacToeObj = cp.deepcopy(currNode.TicTacToe) try: TicTacToeObj.make_move(x, y) except: continue nextNode = currNode.compareTo(TicTacToeObj.board) if nextNode is None: nextNode = Node(expanded=False, visited=True, TotalSimualtionReward=0, totalNumVisit=1, TicTacToe=TicTacToeObj, parent=None) else: nextNode = MCTS.MonteCarloTreeSearch(currNode, 0.1) print("After {} Move".format(nextNode.TicTacToe.moveCnt)) print(nextNode.TotalSimualtionReward) print(nextNode.TotalNumVisit) nextNode.TicTacToe.print_board() currNode = nextNode if currNode.TicTacToe.draw: print("Match is Drawn") else: if currNode.TicTacToe.moveCnt & 1: print("First Player won") else: print("Second Player won")