Chess Engine is a project that brings together various Object-Oriented Principles, design patterns, and heuristic algorithms to create a chess engine capable of challenging gameplay with both text-based and graphical interfaces. Here's a brief overview of what this project consists of:
- Encapsulation: Ensuring data security and control by encapsulating chess pieces and game logic within classes
- Polymorphism: Utilizing polymorphism to model different chess pieces and player types, enhancing the versatility of the chess engine and improving modularity
- Abstraction: Abstracting complex chess operations to simplify code and enhance code organization
- MVC pattern: Separating the chess engine's components into distinct modules (Model, View, and Controller) for modularity and ease of maintenance
- Observer pattern: Employing the Observer pattern to create a responsive structure that updates the game state and UI in real-time