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.