A command-line Monopoly game built in Java featuring property trading, rent, dice rolls, and a full save/load system.
A fully functional text-based Monopoly game written in Java, built from the ground up to simulate the core mechanics of Monopoly — property ownership, rent collection, dice rolling, and player balance management — all through the command line.
This project also introduces data persistence through a custom save/load system, allowing players to pick up their game right where they left off. It showcases practical use of object-oriented programming, file I/O, and error handling in a console environment.
This project replicates the main gameplay loop of Monopoly, including player turns, property ownership, chance/luck through dice rolls, and financial management. It was developed as part of a class project focused on object-oriented design and Java file handling.
The game operates fully through a command-line interface, emphasizing logic structure and clarity over graphics — an intentional design choice to focus on gameplay logic and program structure.
- 🎲 Roll Dice – Random dice rolls determine player movement across the board
- 🏡 Property System – Buy, sell, and pay rent for properties you land on
- 💰 Money Tracking – Balance updates after every transaction or rent payment
- 🚔 Go & Jail Mechanics – Implements Monopoly’s corner rules for realism
- 💾 Save and Load System – Game states are saved and restored using Java file I/O
⚠️ Error Handling – Prevents invalid inputs and ensures game stability
- Object-Oriented Programming (OOP)
- Java Collections & Data Structures
- File I/O (Reading and Writing Game Data)
- Input Validation & Exception Handling
- Encapsulation of Game Logic
- Language: Java
- Environment: IntelliJ IDEA / VS Code
- Libraries Used: Java I/O, Collections, Random
- Concepts Covered: OOP, file persistence, control flow, validation
This project strengthened my understanding of object-oriented programming, especially how multiple classes can interact to represent a complex system like Monopoly. Implementing a save/load system helped me learn practical file I/O handling and serialization concepts, while designing the turn-based loop taught me how to structure a clean, reusable game flow.
git clone https://github.com/moussakabalan/java-monopoly-cli.git javac MonopolyGame.java
java MonopolyGameOriginal Project Dated 09/25/25