Пример #1
0
 def test_init(self):
     """Tests for the __init__ method."""
     P1 = axelrod.Punisher()
     self.assertEqual(P1.history, [])
     self.assertEqual(P1.mem_length, 1)
     self.assertEqual(P1.grudged, False)
     self.assertEqual(P1.grudge_memory, 1)
Пример #2
0
 def test_reset_method(self):
     """Tests the reset method."""
     P1 = axelrod.Punisher()
     P1.history = [C, D, D, D]
     P1.grudged = True
     P1.grudge_memory = 4
     P1.reset()
     self.assertEqual(P1.grudged, False)
     self.assertEqual(P1.grudge_memory, 0)
Пример #3
0
            j = random.random()
            #Let Mr Hyde and Dr Jykle compete
            #If Dr Jykle beats Mr Hyde cooperate else defect
            if h - j >= 0:
                return C
            else:
                return D


hj = DrJekyllMrHyde()  #Create instance of class

#players = [s() for s in axl.short_run_time_strategies]  # Create players
players = [
    hj,
    axl.Defector(),
    axl.TitForTat(),
    axl.Thumper(),
    axl.Punisher(),
    axl.AdaptiveTitForTat(),
    axl.FirstByDavis(),
    axl.Appeaser()
]
#players.append(hj)
tournament = Tournament(players)  # Create a tournament
results = tournament.play()  # Play the tournament

results.write_summary('SummaryMileStone3.csv')  # Write results to csv file

plot = axl.Plot(results)
p = plot.boxplot()  #Plot results
p.show()
Пример #4
0
 def test_init(self):
     """Tests for the __init__ method."""
     player = axelrod.Punisher()
     self.assertEqual(player.mem_length, 1)
     self.assertFalse(player.grudged)
     self.assertEqual(player.grudge_memory, 1)
Пример #5
0
    def test_strategy(self):
        """
        Starts by cooperating
        """

        random.seed(4)

        P1 = axelrod.Punisher()
        P2 = axelrod.Player()
        P2.history = ['C', 'C', 'D', 'D', 'D', 'C']

        self.assertEqual(P1.mem_length, 1)
        self.assertEqual(P1.grudged, False)

        # Starts by playing C
        self.assertEqual(P1.strategy(P2), 'C')
        self.assertEqual(P1.grudged, False)
        P2.history.append('C')

        self.assertEqual(P1.strategy(P2), 'C')
        self.assertEqual(P1.grudged, False)
        P2.history.append('D')

        self.assertEqual(P2.history, ['C', 'C', 'D', 'D', 'D', 'C', 'C', 'D'])
        self.assertEqual(P1.strategy(P2), 'D')
        self.assertEqual(P1.grudged, True)

        for turn in range(P1.mem_length - 1):
            self.assertEqual(P1.mem_length, 10)
            self.assertEqual(P1.strategy(P2), 'D')
            # Doesn't matter what opponent plays now
            P2.history.append(random.choice(['C', 'D']))
            self.assertEqual(P1.grudged, True)

        self.assertEqual(P1.strategy(P2), 'D')
        self.assertEqual(P1.grudged, True)
        P2.history.append('C')

        # Back to being not grudged
        self.assertEqual(P1.strategy(P2), 'C')
        self.assertEqual(P1.grudged, False)
        P2.history.append('C')

        self.assertEqual(P1.strategy(P2), 'C')
        self.assertEqual(P1.grudged, False)
        P2.history.append('D')

        # Now grudges again
        self.assertEqual(P1.strategy(P2), 'D')
        self.assertEqual(P1.mem_length, 8)
        self.assertEqual(P1.grudged, True)
        P2.history.append('C')

        for turn in range(P1.mem_length - 1):
            self.assertEqual(P1.mem_length, 8)
            self.assertEqual(P1.strategy(P2), 'D')
            # Doesn't matter what opponent plays now
            P2.history.append(random.choice(['C', 'D']))
            self.assertEqual(P1.grudged, True)

        self.assertEqual(P1.strategy(P2), 'D')
        self.assertEqual(P1.grudged, True)
        P2.history.append('C')

        # Back to being not grudged
        self.assertEqual(P1.strategy(P2), 'C')
        self.assertEqual(P1.grudged, False)
        P2.history.append('C')
Пример #6
0
 def test_stochastic(self):
     self.assertFalse(axelrod.Punisher().stochastic)
Пример #7
0
    def test_strategy(self):
        """Starts by cooperating."""

        random.seed(4)

        P1 = axelrod.Punisher()
        P2 = axelrod.Player()
        history = [C, C, D, D, D, C]
        set_history(P2, history)

        self.assertEqual(P1.mem_length, 1)
        self.assertEqual(P1.grudged, False)

        # Starts by playing C
        self.assertEqual(P1.strategy(P2), C)
        self.assertEqual(P1.grudged, False)
        history.append(C)
        set_history(P2, history)

        self.assertEqual(P1.strategy(P2), C)
        self.assertEqual(P1.grudged, False)
        history.append(D)
        set_history(P2, history)

        self.assertEqual(P2.history, [C, C, D, D, D, C, C, D])
        self.assertEqual(P1.strategy(P2), D)
        self.assertEqual(P1.grudged, True)

        for turn in range(P1.mem_length-1):
            self.assertEqual(P1.mem_length, 10)
            self.assertEqual(P1.strategy(P2), D)
            # Doesn't matter what opponent plays now
            history.append(random.choice([C, D]))
            set_history(P2, history)
            self.assertEqual(P1.grudged, True)

        self.assertEqual(P1.strategy(P2), D)
        self.assertEqual(P1.grudged, True)
        history.append(C)
        set_history(P2, history)

        # Back to being not grudged
        self.assertEqual(P1.strategy(P2), C)
        self.assertEqual(P1.grudged, False)
        history.append(C)
        set_history(P2, history)

        self.assertEqual(P1.strategy(P2), C)
        self.assertEqual(P1.grudged, False)
        history.append(D)
        set_history(P2, history)

        # Now grudges again
        self.assertEqual(P1.strategy(P2), D)
        self.assertEqual(P1.mem_length, 8)
        self.assertEqual(P1.grudged, True)
        history.append(C)
        set_history(P2, history)

        for turn in range(P1.mem_length-1):
            self.assertEqual(P1.mem_length, 8)
            self.assertEqual(P1.strategy(P2), D)
            # Doesn't matter what opponent plays now
            history.append(random.choice([C, D]))
            set_history(P2, history)
            self.assertEqual(P1.grudged, True)

        self.assertEqual(P1.strategy(P2), D)
        self.assertEqual(P1.grudged, True)
        history.append(C)
        set_history(P2, history)

        # Back to being not grudged
        self.assertEqual(P1.strategy(P2), C)
        self.assertEqual(P1.grudged, False)