Structs, Enums, and Arrays, Oh My!
EECS 280 -- Winter 2008
Out: February 1st
Due: March 4th, 11:59 PM
Monopoly is a classic Parker Brothers board game built around buying,
selling, and developing property.
Each player acquires property over
the course of the game.
Thereafter, when a player lands on a square
"owned" by another, the player must pay "rent" to that owner.
The rules of movement for this game are relatively complex, so it is
natural to wonder whether some squares are landed upon more often than
If so, those squares are proportionally more valuable than
those landed upon less frequently.
All other things being equal, a
strategic player would prefer to acquire popular properties in favor
of unpopular ones.
In this project, you will write a simulator incorporating the rules of
movement for the game.
In the course of building this simulator, you
will use some of C++'s I/O mechanisms and will gain experience using
enumerations, structures, and arrays.
The specification proceeds as follows.
First, Section II presents the
structure of Monopoly and the rules relevant to the problem at hand.
Section III describes the arguments your program must accept, and the
output your simulator must produce.
Section IV describes the
requirements and restrictions placed on your implementation of the
Section V gives some hints we think will be helpful in
completing the project.
Section VI concludes with administrative
II. Monopoly --- Rules of Movement
According to Hasbro, the current owner of the franchise, Monopoly is
the best-selling board game in the world.
It is sold in 80 countries
and produced in 26 languages.
For our purposes, we only need to
concern ourselves with the elements and rules of game play that
direct the movement of players.
The official Monopoly board has 40 squares and two decks of 16 cards
each---the Chance deck and the Community Chest deck.
Each square belongs to one of nine categories:
* Go: the square on which each player starts at the beginning of the
* Properties: squares that may be bought, sold or developed.
* Railroads: a specific kind of property.
* Utilities: another specific kind of property.
* Chance: directs a player to draw a card from the Chance deck,
follow its instructions, and replace the card on the bottom of