-
Notifications
You must be signed in to change notification settings - Fork 5
/
example3.py
30 lines (26 loc) · 1.14 KB
/
example3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
####
# Each team's file must define four tokens:
# team_name: a string
# strategy_name: a string
# strategy_description: a string
# move: A function that returns 'c' or 'b'
####
team_name = 'E3'
strategy_name = 'Collude but retaliate'
strategy_description = '''\
Collude first round. Collude, except in a round after getting
a severe punishment.'''
def move(my_history, their_history, my_score, their_score):
'''Make my move based on the history with this player.
history: a string with one letter (c or b) per round that has been played with this opponent.
their_history: a string of the same length as history, possibly empty.
The first round between these two players is my_history[0] and their_history[0]
The most recent round is my_history[-1] and their_history[-1]
Returns 'c' or 'b' for collude or betray.
'''
if len(my_history)==0: # It's the first round; collude.
return 'c'
elif my_history[-1]=='c' and their_history[-1]=='b':
return 'b' # Betray if they were severely punished last time,
else:
return 'c' # otherwise collude.