I have been trying to think of a simple programming competition that we can run at the next SHHH (Super Happy Hacker House) at the Vancouver Hackspace.
ACM International Collegiate Programming Contest seems like an obvious choice. I have run though these contest back in collage and they where very challenging.
Too challenging for a SHHH where would probably consuming some beers and having fun. I was hoping for one with less of a barrier to entry where people with less programming experience could at-lest join in.
A few months ago I listened to a Radio Lab podcast on the prisoners-dilemma where they describe the problem and created a competition where people could submit robots that would play this game. They went on to describe the outcome of a few of these robots, how they worked, why they worked that way. It was a interesting podcast.
This sounded perfect for a simple programming contest. It only had a few rules, inputs, outputs and its very simple to teach someone. So I created a model of the system with a few example bots.
- Jebus - Always cooperates.
- Snitch - Always defects.
- Random - Randomly makes choices.
- Copy Cat - Starts by cooperating but then copies his opponents last move.
- Fool Me Once - Starts by cooperating but if opponents ever defect it will defect every time after that.
- Forgives - Starts by cooperating, if the opponents defect it will defect until the opponents cooperates twice in a row.
Source code can be found on github funvill/PrisonersDilemma
This was an interesting exercise and it was fun to program but its too simple for a programming competition. The problem is that there is only one input, output and does not allow for a variety of choices.
Other research
On stack overflow I found a programming competition for creating the best battleship AI. I also found this one produced by Google that looks amazing http://aichallenge.org/ too bad there servers are down
More research is needed.