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.
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.
Thank you for organizing this! Looking forward to seeing the endgame play out!
I wish your graphing software had a better label-layout algorithm. (I’m not seeing
AbstractSpyTreeBot
on the charts, even after downloading the images to look closer? Was it disqualified, or am I just blind?)Neither. I just forgot to uncomment it. I included literally every other bot. Time for another restart. At least I only wrote 11,800 words this time.
I’m going to finish this version of the game anyway, in personal blog posts, since I have already written up the results. Then I’ll post the real game with
AbstractSpyTreeBot
.Oh no! I am so sorry. Looking forward to seeing all the divergent timeline analyses published, just so that all of your work writing this up doesn’t go to waste. “The Darwin Game, alternate timeline number one, where the physics of the world were slightly different”.
Thanks. :)
Not quite as good for me as I would have hoped, but we’re leaving the early game and heading into the midgame, where the clones will gradually start defecting against outsiders, leading to a showdown for dominance between clones and Chaos. The clones don’t quite seem to have critical mass, but I care less about who wins and more about how long it lasts.
The graph for Silly 2 Bot is great, it shows exactly where weirdos and attackers became a marginal force.