コード例 #1
0
    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])
コード例 #2
0
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):