Watopoly
Monopoly rebuilt around Waterloo campus life, from OSAP to the DC Tim Hortons line.
A Waterloo-themed Monopoly game written in C++ for an object-oriented software development course. The code models players, properties, residences, gyms, banks, and campus-specific actions as separate objects, with both a text display and a graphical board view.
The assignment
Watopoly takes the full state and rule set of Monopoly and remaps it to the University of Waterloo: players collect OSAP, pay co-op fees, get sent to the DC Tim Hortons line, and move through residences, gyms, and academic buildings.
The challenge was not drawing a board. It was keeping every rule, property state, payment, trade, and player action consistent as the game evolved turn by turn.
Object model
The design separates the board, players, tiles, ownable properties, and one-off actions into focused C++ classes. Academic buildings, residences, and gyms share property behavior while still implementing their own fee and improvement rules.
Save and load support serializes the game state, while the Observer pattern lets the text and graphical displays react to the same underlying model without mixing rendering into the rules engine.
The visual layer
I built a graphical view alongside the terminal board so the state of every square, player, and property is readable at a glance. Keeping that visual synchronized with the text interface was a practical lesson in separating state from presentation.