Chess bot

I like to play chess and I'm pretty good at it. I was always interested in how chess engines work and when I needed to do a research project, it seemed like the perfect fit. So I dicided to make a chess bot opponent to play chess against. The chess bot uses a game tree to keep track of all the possible moves. And to find the best move I used the negamax search algorithm with alpha beta pruning. All different moves are possible including castling and en passant. The bot is a good opponent, beating it requires some strategy. You can see that it makes good moves, but because of the limited depth it is still beatable for me. Some more optimization is needed to go deeper and the evaluation function can also be improved. An other thing that would be good to add is iterative deepening.
I wrote a small article about how it works in the readme on github.

Made in c++ and used SDL2 for the graphics.