Fixed the problem where I was passing around classes instead of instances of those classes. I have no idea how I managed to screw THAT up so badly!
Added a new AI, ai_adaptive. Seems to be doing pretty well, beating all non-random AIs when playing a large enough amount of rounds (several hundred).