The prisoner's dilemma tournament is over. There were a total of 21 entries. The winner is Margaret Sy, with a total of 39 points. 2nd and 3rd place go to rpglover64 and THE BLACK KNIGHT, with scores of 38 and 36 points respectively. There were some fairly intricate strategies in the tournament, but all three of these top scorers submitted programs that completely ignored the source code of the other player and acted randomly, with the winner having a bias towards defecting.

You can download a chart describing the outcomes here, and the source codes for the entries can be downloaded here.

I represented each submission with a single letter while running the tournament. Here is a directory of the entries, along with their scores: (some people gave me a term to refer to the player by, while others gave me a term to refer to the program. I went with whatever they gave me, and if they gave me both, I put the player first and then the program)

A: rpglover64 (38)

B: Watson Ladd (27)

c: THE BLACK KNIGHT (36)

D: skepsci (24)

E: Devin Bayer (30)

F: Billy, Mimic-- (27)

G: itaibn (34)

H: CooperateBot (24)

I: Sean Nolan (28)

J: oaz (26)

K: selbram (34)

L: Alexei (25)

M: LEmma (25)

N: BloodyShrimp (34)

O: caa (32)

P: nshepperd (25)

Q: Margaret Sy (39)

R: So8res, NateBot (33)

S: Quinn (33)

T: HonoreDB (23)

U: SlappedTogetherAtTheLastMinuteBot (20)

Hmm. Considering the heavy amount of random strategies, it seems like it might be worth it iterating the tournament several more times and summing the point totals, particularly since C(one of the randoms) is above the three way tie at 4th place between G, K and N by only two points, and A and C also have a 2 point difference despite having functionally identical strategies (50% random Cooperate or Defect.) I feel like that implies standard deviations may make analysis of the results premature.

Nonetheless, analyzing is fun, so I'll do a little bit anyway o... (read more)

I think that kind of deviation was probably a large part of the motivation for those who submitted random-playing bots, since the contest rules specified one round.

I haven't looked too closely at K, nor ran any tests, but I have a slight suspicion it sometimes cooperated in simulation, despite always defecting on its turn.

As for the cooperatebots, there were multiple reasons I didn't write N to exploit them, but not source complexity--they don't even do anything besides cooperate; the middle term is just the function's argument list.