Tuesday, September 16, 2008

Post PyCon UK

Due to my harried transit I didn't get to prepare my lightning talk "PyAsshole: Simulating a partial information non trump card drinking game in Python." I did spend my flight home working on a simulator. It currently onl-y has one strategy (random legal plays) so I have to add a player that uses my preferred strategy [play to win or - when you can't - play not to lose]. I'll also have to implement a drink count in the simulation. The idea is that no matter what the player plays he has a chance of reverting to a random play at a chance based on his drink count.

Unfortunately adding in a drink count immediately injects a social (and thus very hard to model) component to the game. The mechanical rules say you drink if you are skipped or if you pass. But the social rules say you can be made to drink for any reason by someone higher than you in the chain. People being people those optional drinks are subject to retribution and those kinds of things are very hard to model. I expect tit-for-tat to work well in simulated play but that completely ignores the human propensity which is to engage in cooperative play.

No comments: