AI Chess Bot (C++)
This project aimed to create a chess engine using the C++ programming language. A chess engine is a computer program designed to analyze chess positions and determine the best move to make. The project involves building three main components:
Board representation: This part involves designing a data structure that can hold all the necessary information about a given chess position.
Move generation: Given a specific chess position, the program needs to be able to generate all the valid moves that can be made from that position (taking into account castling, en passant, check, …).
Search: Using the move generation component, the program constructs a game tree and searches through it to identify promising moves. This is done by applying an evaluation heuristic, which helps assess the desirability of different moves.
In addition to correctness, performance is a crucial factor in chess engines. The sheer number of possible moves in a chess game makes a brute-force search impractical, even for shallow depths. Thus, optimizing the engine for efficiency was expected.
The minimax algorithm was used for the chess bot (is subClass.cpp).

