This project implements a basic chess engine that uses the MiniMax algorithm for its AI player.
In the source code, several common design patterns such as Singleton, Builder, Decorator, and Factory are applied. Most classes are immutable and follow OOP principles. The project also takes advantage of useful Java 8 features like Lambda expressions, Streams API, and the Optional class.
- Guava – for immutable collections
- Java Swing – for basic UI
- Maven – as a build tool
