|
1 | 1 | from __future__ import absolute_import |
2 | 2 |
|
3 | | -from .alternator import * |
4 | | -from .appeaser import * |
5 | | -from .averagecopier import * |
6 | | -from .axelrod_tournaments import * |
7 | | -from .backstabber import * |
| 3 | +from .alternator import Alternator |
| 4 | +from .appeaser import Appeaser |
| 5 | +from .averagecopier import AverageCopier, NiceAverageCopier |
| 6 | +from .axelrod_tournaments import ( |
| 7 | + Davis, Feld, Grofman, Joss, Shubik, Tullock, Champion, Eatherley, Tester) |
| 8 | +from .backstabber import BackStabber, DoubleCrosser |
8 | 9 | from .calculator import Calculator |
9 | | -from .cooperator import * |
10 | | -from .cycler import * |
11 | | -from .darwin import * |
12 | | -from .defector import * |
13 | | -from .forgiver import * |
14 | | -from .geller import * |
15 | | -from .gobymajority import * |
16 | | -from .grudger import * |
17 | | -from .grumpy import * |
18 | | -from .hunter import * |
19 | | -from .inverse import * |
20 | | -from .mathematicalconstants import * |
21 | | -from .memoryone import * |
22 | | -from .meta import * |
23 | | -from .mindcontrol import * |
24 | | -from .mindreader import * |
25 | | -from .oncebitten import * |
26 | | -from .prober import * |
27 | | -from .punisher import * |
28 | | -from .qlearner import * |
29 | | -from .rand import * |
30 | | -from .retaliate import * |
31 | | -from .titfortat import * |
| 10 | +from .cooperator import Cooperator, TrickyCooperator |
| 11 | +from .cycler import AntiCycler, CyclerCCD, CyclerCCCD, CyclerCCCCCD |
| 12 | +from .darwin import Darwin |
| 13 | +from .defector import Defector, TrickyDefector |
| 14 | +from .forgiver import Forgiver, ForgivingTitForTat |
| 15 | +from .geller import Geller, GellerCooperator, GellerDefector |
| 16 | +from .gobymajority import ( |
| 17 | + GoByMajority, GoByMajority10, GoByMajority20, GoByMajority40, |
| 18 | + GoByMajority5) |
| 19 | +from .grudger import Grudger, ForgetfulGrudger, OppositeGrudger, Aggravater |
| 20 | +from .grumpy import Grumpy |
| 21 | +from .hunter import ( |
| 22 | + DefectorHunter, CooperatorHunter, AlternatorHunter, MathConstantHunter, |
| 23 | + RandomHunter) |
| 24 | +from .inverse import Inverse |
| 25 | +from .mathematicalconstants import Golden, Pi, e |
| 26 | +from .memoryone import ( |
| 27 | + WinStayLoseShift,GTFT, StochasticCooperator, StochasticWSLS, ZDGTFT2, |
| 28 | + ZDExtort2, SoftJoss, MemoryOnePlayer) |
| 29 | +from .mindcontrol import MindController, MindWarper, MindBender |
| 30 | +from .mindreader import MindReader, ProtectedMindReader |
| 31 | +from .oncebitten import OnceBitten, FoolMeOnce, ForgetfulFoolMeOnce, FoolMeForever |
| 32 | +from .prober import Prober, Prober2, Prober3, HardProber |
| 33 | +from .punisher import Punisher, InversePunisher |
| 34 | +from .qlearner import RiskyQLearner, ArrogantQLearner, HesitantQLearner, CautiousQLearner |
| 35 | +from .rand import Random |
| 36 | +from .retaliate import ( |
| 37 | + Retaliate, Retaliate2, Retaliate3, LimitedRetaliate, LimitedRetaliate2, |
| 38 | + LimitedRetaliate3) |
| 39 | +from .titfortat import ( |
| 40 | + TitForTat, TitFor2Tats, TwoTitsForTat, Bully, SneakyTitForTat, |
| 41 | + SuspiciousTitForTat, AntiTitForTat, HardTitForTat, HardTitFor2Tats) |
32 | 42 |
|
33 | | -# A list of strategies to quickly create a tournament |
34 | | -basic_strategies = [ |
35 | | - Alternator, |
36 | | - Cooperator, |
37 | | - Defector, |
38 | | - Random, |
39 | | - TitForTat, |
40 | | -] |
41 | 43 |
|
42 | | -# All the strategies in the tournament |
43 | | -strategies = basic_strategies + [ |
| 44 | +# Note: Meta* strategies are handled in .__init__.py, so this is not the |
| 45 | +# final form of the list |
| 46 | + |
| 47 | +strategies = [ |
44 | 48 | Aggravater, |
| 49 | + Alternator, |
45 | 50 | AlternatorHunter, |
46 | 51 | AntiCycler, |
47 | 52 | AntiTitForTat, |
|
53 | 58 | Calculator, |
54 | 59 | CautiousQLearner, |
55 | 60 | Champion, |
| 61 | + Cooperator, |
56 | 62 | CooperatorHunter, |
57 | 63 | CyclerCCCCCD, |
58 | 64 | CyclerCCCD, |
59 | 65 | CyclerCCD, |
60 | 66 | Darwin, |
61 | 67 | Davis, |
| 68 | + Defector, |
62 | 69 | DefectorHunter, |
63 | 70 | DoubleCrosser, |
64 | 71 | Eatherley, |
|
93 | 100 | LimitedRetaliate2, |
94 | 101 | LimitedRetaliate3, |
95 | 102 | MathConstantHunter, |
96 | | - MetaHunter, |
97 | | - MetaMajority, |
98 | | - MetaMinority, |
99 | | - MetaWinner, |
100 | 103 | MindBender, |
101 | 104 | MindController, |
102 | 105 | MindReader, |
|
110 | 113 | Prober3, |
111 | 114 | ProtectedMindReader, |
112 | 115 | Punisher, |
| 116 | + Random, |
113 | 117 | RandomHunter, |
114 | 118 | Retaliate, |
115 | 119 | Retaliate2, |
|
121 | 125 | StochasticWSLS, |
122 | 126 | SuspiciousTitForTat, |
123 | 127 | Tester, |
| 128 | + TitForTat, |
124 | 129 | TitFor2Tats, |
125 | 130 | TrickyCooperator, |
126 | 131 | TrickyDefector, |
|
130 | 135 | ZDExtort2, |
131 | 136 | ZDGTFT2, |
132 | 137 | e, |
133 | | - ] |
134 | | - |
135 | | - |
136 | | -def is_cheater(s): |
137 | | - """ |
138 | | - A function to check if a strategy cheats. |
139 | | - """ |
140 | | - classifier = s.classifier |
141 | | - return classifier['inspects_source'] or\ |
142 | | - classifier['manipulates_source'] or\ |
143 | | - classifier['manipulates_state'] |
144 | | - |
145 | | -ordinary_strategies = [s for s in strategies if not is_cheater(s)] |
146 | | -cheating_strategies = [s for s in strategies if is_cheater(s)] |
| 138 | +] |
0 commit comments