Python Monopoly

Many years ago, a friend and I were discussing Monopoly strategy (as one does, of course) when we came to a disagreement. He believed that the best players are risk-seeking: they buy as many properties as quickly as possible, always teetering on the edge of bankruptcy. I believed (and I still do) that the best players are risk-averse: they buy cautiously, saving their money to buy superior properties and make all their payments.

I don’t know who is right (though my money is on me), but I know that the way to find out is to collect data. Ideally, we would have risk-seeking players and risk-averse players compete in thousands of games and see which type of player does better than the other. Unfortunately, a Monopoly game lasts about 1,000 hours (not really, but doesn’t it feel like it sometimes?) so this little experiment would take a very long time to conduct.

Thankfully, computers can give us the next best thing. A computer program could simulate a Monopoly game between risk-seeking and risk-averse players thousands, if not millions, of times and determine which type of player does best. Such a program does not currently exist, but I am in the process of writing one in Python to figure it out. I’m not a software engineer so this program may be beyond my ability, but I’m going to give it a shot.

This blog will document my attempt to build this simulator (the code for which is hosted on GitHub). Part of it will deal with the technical hurdles, but most of it will discuss my thought process as I grapple with how to capture the complex human psychology involved in a game of Monopoly in a few lines of code. So should we seek or avoid risk to be the best Monopoly players? Let’s find out.

11 thoughts on “Python Monopoly

  1. I suspect that your friend is correct as I have seen the risk seeking strategy pay off many times. The risk seeker always buys if he can possibly afford it. The risk averse strategy is harder to define. You will need some rules and that is where it gets fuzzy. Cool project! I look forward to hearing about your results!

  2. There is probably far more complication behind this, for example also depending on the number of players. A single risk seeker may do be better if all other players are risk averse, but far more random if all other players are risk seekers too.

    The good news is you can code various players and throw them all at each other to see who wins.

    The next step is then to have the player coding write itself. For example risk taking can be a number from 0 to 100. Another axis is how much cash is kept in reserve. Another is changing the risk taking over the game (eg getting more or less risky). Genetic programming means you start with players having random values for those attributes, play a game, mutate some and try again retaining the most succesfull. Eventually you’ll find the optimal combination (assuming you don’t hit local maximums).

    • Good point about interactions between the risk profiles of all players. My plan is to design the players in such a way that you can run experiments comparing how risk profiles perform as a function of other players’.

      That’s a pretty cool idea to let players define their risk profiles as the game goes on and how they are performing. I hadn’t thought about that, but it sounds like a great feature to implement once some of the basics have been nailed.

  3. There has been some past work on the subject, such as Paul Murrell’s paper in Chance magazine [http://www.tandfonline.com/doi/abs/10.1080/09332480.1999.10542173?journalCode=ucha20]. Also, Truman Collins’ website [http://www.tkcs-collins.com/truman/monopoly/monopoly.shtml].

    It looks like a fun project, though, and I’m curious to see your findings….

  4. I’ve found both strategies to be victorious against me. My brother being the risk man and my Mother being a very conservative spender and trader. Myself attempting an in between of risk first and money saving later.

    Needless to say I always loose…

  5. Very interesting. I have been wanting to do something similar. What I want to know is how much is determined at the beginning of the game. I want to know the probablility of winning given how much the person was able to buy during the first round.

Leave a comment