The goal of a chess engine is to analyze the current state of the board in order to make the best move possibile. This engine consists of two hard-working components, the evaluation function and the search function.
Evaluation
This evaluation function uses the Negamax implementation in evaluating the state of the board