def reset(self, gameState=None): super().reset() self.cribThrow = [] if __name__ == '__main__': # Initialize variables player1 = DeepPeg(1, True, True, False) player2 = Myrmidon(2, 5, False) numHands = 500 repeatFlag = False windowSize = 20 # Create and run arena arena = Arena([player1, player2], repeatFlag, True) results = arena.playHands(numHands) # Plot results from arena x = np.arange(1, numHands + 1 - windowSize, 1) y0 = np.zeros(len(results[0]) - windowSize) avgResult0 = np.average(results[0]) mu0 = np.zeros(len(y0)) y1 = np.zeros(len(results[1]) - windowSize) avgResult1 = np.average(results[1]) mu1 = np.zeros(len(y1)) y2 = np.zeros(len(results[2]) - windowSize) avgResult2 = np.average(results[2]) mu2 = np.zeros(len(y2)) for i in range(len(x)): y0[i] = np.average(results[0][i:i + windowSize])
verboseFlag = True # Training if trainFlag: learningAgents = [ DeepPeg(1, False, True, False) ] #[LinearB(1,0.5,0.9,False),NonLinearB(1,0.3,0.7,False),DeepPeg(1,True,False),Monty(1,False),Monty2(1,False)] opponentAgents = [Myrmidon(2, 5, False), DeepPeg(2, False, False, False)] for i in range(100): for j in range(len(learningAgents)): for k in range(len(opponentAgents)): player1 = learningAgents[j] player2 = opponentAgents[k] arena = Arena([player1, player2], False, verboseFlag) arena.playHands(10) # Tournament if tournamentFlag: opponentAgents = [ PlayerRandom(1, False), DeepPeg(1, True, False, False), DeepPeg(1, False, False, False), Myrmidon(2, 5, False) ] numAgents = len(opponentAgents) peggingResults = np.zeros((numAgents, numAgents)) handResults = np.zeros((numAgents, numAgents)) totalResults = np.zeros((numAgents, numAgents)) for i in range(numAgents): for j in range(numAgents):