Monopoly (Game)

From UBC Wiki

What is the problem?

Monopoly is a classic board game where players buy, sell, and trade properties to build monopolies and bankrupt opponents. The objective is to amass wealth and strategically manage resources to become the last player standing.

What is the something extra?

Something extra we’d like to add is a Graphical User Interface that allows users on the same computer to play the game of monopoly together.

What did we learn from doing this?

  • The bottom-line is that we learned the Haskell functional programming principles, state management, testing and debugging strategies, and clear documentation and communication practices. Developing our Monopoly game helped us to understand functional programming principles such as pure functions, higher-order functions, and type matching. As well, it helped us to learn more about immutable data structures that help to ensure consistency of our game states (ex. GameState, PlayersState, TileState, etc.). Further, this project helped us develop strong testing/debugging strategies, as well as, strong communication amongst group members and ensuring our documentation was clear to one another.
  • Functional programming is suitable for simpler functions, higher-order functions, managing state changes within our game, and type matching. However, it gets complicated when managing complex states and having many actions associated with the different states. It may be more suitable for a less discrete game that requires a more straightforward and predictable flow of state transitions and interactions.

Work Division

Devam will work on the UI/UX implementation and Kayla will work on the state mutation/game logic. Additionally we will both work equally and in tandem to ensure that the game logic is implemented correctly as per our intended behavior.

Links to code etc.

https://github.com/TheD3vel0per/Monopoly