# The Darwin Game - Rounds 3 to 9

Edit: This unofficial version of the game is missing AbstractSpyTreeBot.

# Rounds 3-9

![](https://s3-us-west-2.amazonaws.com/www.lsusr.com/lesswrong/darwin-game/write-up-4/line-pie-2-9.png)

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

![](https://s3-us-west-2.amazonaws.com/www.lsusr.com/lesswrong/darwin-game/write-up-4/line-0-9.png)

# 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.