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.