Civitas: OOP Turn-Based Game
Java & Object-Oriented Programming
A turn-based board game designed and implemented in Java using object-oriented programming principles. Features a modular class structure with Player, Square, Dice, and EventCard components, developed as part of the Object-Oriented Programming course at the University of Granada.
Project Details / Background
Designed and implemented a complete turn-based board game in Java, applying core OOP principles including encapsulation, inheritance, and polymorphism. The game features a modular class hierarchy with clearly defined responsibilities for each component.
Built the game around a modular class structure: Player manages state and balance, Square defines board positions with different behaviors, Dice handles random generation with configurable parameters, and EventCard introduces dynamic gameplay events that affect player progress.
Followed clean code practices throughout the project, ensuring readable, maintainable, and well-documented code. The project was developed and tested using NetBeans IDE with a focus on proper debugging and unit verification.
Completed as part of the Object-Oriented Programming course at the University of Granada (UGR), demonstrating practical application of software design patterns and OOP fundamentals in a real game development context.
Technologies
Java • Object-Oriented Programming • Design Patterns • NetBeans IDE • Clean Code