/JavaOOP-ZombieEscape

FruitFrenzy: Escape from the Undead is a Java game developed with OOP principles and MVC architecture. It features dynamic terrain generation, a high score system, and single-player gameplay. Navigate mazes, collect fruits, evade zombies, and compete for the highest score. Developed by Faycal Kilali.

Primary LanguageJava

FruitFrenzy: Escape from the Undead

FF

Description

FruitFrenzy: Escape from the Undead is a Java-based game meticulously crafted to embody advanced object-oriented programming (OOP) principles, showcasing a robust Model-View-Controller (MVC) architecture. Players delve into dynamically generated terrains teeming with a plethora of interactive elements, including fruits, menacing zombies, and formidable barriers. Their mission? To masterfully navigate the perilous landscapes, strategically collecting fruits while deftly evading the relentless pursuit of undead adversaries. Boasting seamless integration of various design patterns, coupled with ANSI code for visually striking graphics, this game offers a captivating immersive experience.

UML Class Diagram

UML

Gameplay

Gameplay Gameplay

Features

  • MVC Architecture: Impeccably structured with the renowned Model-View-Controller paradigm, fostering modular development and unparalleled separation of concerns.
  • Dynamic Terrain Generation: Experience endless thrills with procedurally generated terrains, ensuring each gameplay is an exhilarating journey into the unknown.
  • Fruit Collection: Engage in a riveting quest to gather an array of succulent fruits strewn across the terrain, each offering unique healing properties.
  • Zombie Pursuit: Brace yourself for heart-pounding encounters as relentless zombies traverse the terrain, intensifying the challenge with their relentless pursuit.
  • High Score System: Embark on a quest for dominance as you vie for supremacy on the leaderboard, showcasing your prowess to the gaming community.
  • Multiplayer Support (Future): Currently single-player, multiplayer functionality may be implemented in future versions.
  • ANSI Code Visuals: Immerse yourself in a visually stunning world brought to life with vibrant ANSI code, elevating the gaming experience to unprecedented heights.

Installation

Embark on your adventure by cloning the repository and compiling the Java source files using any Java-compatible IDE or command-line tools.

git clone https://github.com/faycalki/JavaOOP-ZombieEscape.git
cd JavaOOP-ZombieEscape
javac Main.java
java Main

Controls

Master the art of survival with intuitive controls:

  • Use arrow keys or WASD to control the player character.
  • Navigate the terrain, collect fruits, and avoid zombies to survive.

To do

The following additional improvements can be made

  • Removal of all instanceOf calls. This may involve the utilization of the Visitor Design Pattern
  • Removal of all casting
  • Removal of toString methods in the Entity interface and implementing classes. Doing so will appropriately adhere to the MVC Structure.
  • Removal of all switch statements

Contributing

Contributions are welcome! If you have any suggestions, feature requests, or bug fixes, please open an issue or submit a pull request.

License

This project is licensed under the GNU General Public License v3.0.

About the Author

This game was developed by Faycal Kilali. Visit my website for more information about me and my projects.