Edit: This unofficial version of the game is missing AbstractSpyTreeBot.
Rounds 3-9
MeasureBot maintains its lead. SimplePatternFinderBot takes second place.
Deep dive into SimplePatternFinderBot
SimplePatternFinderBot
Yonge’s SimplePatternFinder can speak for itself.
if pattern != None:
if pattern.IsPatternFairOrGoodForUs():
# Try and stick to it as it looks good
ret = pattern.OurNext()
else:
# We have a problem. If it is a smart opponent we
# don't want to encourage it to stick with it, on
# the other hand if it is a dumb bot that will stick
# with it regardless then we are better getting
# something rather than nothing. It's also possible
# we might not have been able to establish
# co-operation yet
if pattern.OurNext() >= 3:
# The pattern is godd for us for at least this
# move, so stick to it for now.
ret = pattern.OurNext()
elif (self.theirScore + pattern.GetNext())/self.turn\
>= 2.25:
# Under no circumstances allow it to get too many
# points from playing an unfavourable pattern
ret = 3
elif self.theirMoves[-1] + self.ourMoves[-1] == 5:
# If we managed to co-operate last round,
# hope we can break the pattern and co-operate
# this round.
return self.theirMoves[-1]
elif not self.hasTotalOfFiveBeenPlayed:
# If the combined scores have never been 5
# before try to arrange this to see if it will
# break the deadlock.
ret = pattern.OurNext()
elif self.round < 4 and pattern.OurNext() >= 1:
# It looks like we are probably dealing with
# a nasty bot. Tolerate this within limits in
# the early game where it is more likely to be
# a dum bot than a sophisticated bot that is
# very good at exploiting us, so we at least
# get something
ret = pattern.OurNext()
elif self.round < 8 and pattern.OurNext() >= 2:
# If we would get an extra point be tolerant
# for a little longer.
ret = pattern.OurNext()
else:
# It looks like it is being completly
# unreasonable, so normally return 3
# to stop us from being exploited,
# but occasionally offer 2 just in case
# we have managed to accidentally get
# ourselves into a defect cycle against
# a more reasonable bot
num = random.randint(0,50)
if num == 0:
# Possibly this should only be done once?
ret = 2
else:
ret = 3
Everything so far
Today’s Obituary
Bot
Team
Summary
Round
Silly Chaos Bot
NPCs
Plays randomly.
4
Silly 4 Bot
NPCs
Always returns 4.
5
S_A
Chaos Army
“79% of the time it submits 1, 20% of the time it submits 5, 1% of the time it submits a random number between 0 and 5.”
6
Silly 5 Bot
NPCs
Always returns 5.
6
Silly Invert Bot 0
NPCs
Returns 0 onthe first round. Returns 5 - <opponents_last_move> on subsequent rounds.
6
Silly 1 Bot
NPCs
Always returns 1.
6
PasswordBot
Multics
Fodder for EarlyBirdMimicBot
8
Definitely Not Collusion Bot
Multics
Fodder for EarlyBirdMimicBot
8
Silly Invert Bot 2
NPCs
Returns 2 onthe first round. Returns 5 - <opponents_last_move> on subsequent rounds.
9
Silly Random Invert Bot
NPCs
Plays randomly on first turn. Returns 5 - <opponents_last_move> on subsequent rounds.
9
Ben-Bot
Norm Enforcers
Collaborates with jacobjacob
9
Rounds 10-20 will be posted on November 16, at 5 pm Pacific Time.
The Darwin Game—Rounds 3 to 9
Edit: This unofficial version of the game is missing AbstractSpyTreeBot.
Rounds 3-9
MeasureBot maintains its lead. SimplePatternFinderBot takes second place.
Deep dive into SimplePatternFinderBot
SimplePatternFinderBot
Yonge’s SimplePatternFinder can speak for itself.
Everything so far
Today’s Obituary
4
.5
.0
0
onthe first round. Returns5 - <opponents_last_move>
on subsequent rounds.1
.2
onthe first round. Returns5 - <opponents_last_move>
on subsequent rounds.5 - <opponents_last_move>
on subsequent rounds.Rounds 10-20 will be posted on November 16, at 5 pm Pacific Time.