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.
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".
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.
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.00onthe first round. Returns5 - <opponents_last_move>on subsequent rounds.1.2onthe 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.