At first I thought that the best strategy should be just random. However, when there are deterministic bots with a definite patterns (eg., always play a winning strategy to the opponent's last move) then a clever bot should do better. So the task boils down to learning/predicting your opponent's strategy. There has been some serious research done in this area and so the problem is quite interesting and non-trivial. Also I like that the game is very easy to understand, easy to code and testing should be very fast (I am thinking in the order of 100 moves per second).

We could repeat this challenge with a small modification. One idea I had was to extend the game to multiple players. This can be done by doing score=(number of people you beat) - (number of people you lost to). The aim is to maximize the score. Here are some examples for 3 players:

So no one at all interested in this idea?!? Not even interested enough to say whether it is good or bad? Come on people.

I really like it. I am going to write some bots that play this n-player game and run some tournaments to see which strategy does best. I think the winning strategy here is very different to the winning strategy in the 2-player version.