The Darwin Game—Rounds 3 to 9

Edit: This un­offi­cial ver­sion of the game is miss­ing Ab­strac­tSpyTreeBot.

Rounds 3-9

Mea­sureBot main­tains its lead. Sim­plePat­ternFin­derBot takes sec­ond place.

Deep dive into SimplePatternFinderBot

SimplePatternFinderBot

Yonge’s Sim­plePat­ternFin­der can speak for it­self.

           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

Every­thing so far

To­day’s Obituary

Bot Team Sum­mary Round
Silly Chaos Bot NPCs Plays ran­domly. 4
Silly 4 Bot NPCs Always re­turns 4. 5
S_A Chaos Army “79% of the time it sub­mits 1, 20% of the time it sub­mits 5, 1% of the time it sub­mits a ran­dom num­ber be­tween 0 and 5.” 6
Silly 5 Bot NPCs Always re­turns 5. 6
Silly In­vert Bot 0 NPCs Re­turns 0 on­the first round. Re­turns 5 - <opponents_last_move> on sub­se­quent rounds. 6
Silly 1 Bot NPCs Always re­turns 1. 6
Pass­wordBot Mul­tics Fod­der for Ear­lyBirdMimicBot 8
Definitely Not Col­lu­sion Bot Mul­tics Fod­der for Ear­lyBirdMimicBot 8
Silly In­vert Bot 2 NPCs Re­turns 2 on­the first round. Re­turns 5 - <opponents_last_move> on sub­se­quent rounds. 9
Silly Ran­dom In­vert Bot NPCs Plays ran­domly on first turn. Re­turns 5 - <opponents_last_move> on sub­se­quent rounds. 9
Ben-Bot Norm En­forcers Col­lab­o­rates with ja­cob­ja­cob 9

Rounds 10-20 will be posted on Novem­ber 16, at 5 pm Pa­cific Time.