Skip to content

itissandeep98/Plant-vs-Zombie-Game

Repository files navigation

Plant-vs-Zombie-Game

by Sandeep & Manan
Remake of a classical game, using object-oriented paradigm and JavaFx as a tool
The implementation is as follow:-

  • We created different controller classes for all the fxml files, for more independent approach.
  • A timeline for animation created in each instance of sprites(Character) for better multithreading.
  • Multiple user by using wrapper class over the game class.
  • Dynamically allocating controller for more dynamic program.
  • One Parent class for all the characters and zombies, plants and lawn mover inheriting them for more generic programming.
  • Storing the essential information when serialising the class, so that it consumes less space and works faster.
  • We Strictly adhered to the OOP Concepts taught.
  • We used data encapsulation, data abstraction and inheritance, polymorphism and many Design patterns.
  • In Design Pattern, we used factory with to create instance of character, state instance for changing behaviour.
  • Template design patterns for particular order of algorithm.
  • Multithreading by using different timeline for different animations.
  • Exception Handling for more flawless design.
  • Decorator with Character class to add functionality to the Timeline and image view.\

Bonus Components:

  • We tried to implement as much as we can other than the basic requirement.
  • Almanac: A guide for the user about all the plants and zombies, their abilities and a funny little description.
  • Sound: Playing the original music from the nostalgic game to give a similar feel about the game.
  • Overview: Giving a overview about what the game is about.
  • Help: A help from our dear zombies
  • Support for multiple users: Create many ids on the game and play. All ids are mutually exclusive from each other, and work independently.
  • An enhanced and simple UI for the user
  • An easy to use Drag and Drop utility.

login menu almanac level ingame 1 ingame 1 ingame 1