This project is a simulation-based game inspired by Quidditch, where players control wizards to catch snaffles and score points. It's built with Java, emphasizing object-oriented programming, simulations, and strategic AI development.
Throughout the development of the Fantastic Bits game, I've gained a wealth of knowledge and skills, including but not limited to:
- Encapsulation: Organizing the game into classes with private fields and public methods to safely manage the game state.
- Inheritance and Polymorphism: Using abstract classes and interfaces for game entities to promote code reuse and flexibility.
- Pathfinding: Implementing algorithms to navigate wizards effectively around the playing field.
- Simulation: Simulating game dynamics to predict the outcomes of various actions, which is crucial for AI decision-making.
- Geometry and Trigonometry: Calculating angles, distances, and velocities to handle movements and collisions accurately.
- Multi-agent Systems: Designing an AI that manages multiple agents (wizards) with coherent strategies that adapt based on the game state.
- Predictive Modeling: Anticipating opponents' moves and the future positions of objects to make informed decisions.
- Decision Trees: Evaluating multiple possible actions each turn to select the optimal strategy.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- A special thanks to my professor for introducing me to this amazing game !
Feel free to explore the code, and I hope it serves as a learning resource or inspiration for your own projects!