anim.gif

Chess AI

  • A simple object-oriented Chess program written in C++

  • Features: Alpha Beta Pruning, Quiescence Searches, Iterative Deepening, Static Positional Valuation Matrices

  • GUI written using wxWidgets

  • Link to my LinkedIn article (see also the blog entry here)

  • Link to the source code on Github

Screenshot2.png
 

While Chess has never been one of my hobbies or passions, the idea of writing a Chess engine has nevertheless intrigued me. Hence, I wrote this program in 2019 after finishing a time-consuming exam finally freed up some time.

This project marked my first steps into the world of C++, and it shows - The codebase is ripe for improvements.

However, it was a ton of fun to break the problem up into small pieces and tackle them one by one:

How do I represent the board and it’s pieces? How do I design the interface? How will I implement the basic principles of the engine?

What I got from it was:

  • A lesson in OOP

  • Some insight into the intricacies of computer Chess

  • Seeing that programming GUIs in C++ is not such a pain after all!

Screenshot1.jpg
 

Aside from some improvements regarding the efficiency, readability and security of the codebase, next steps could be an improved evaluation function, hashtables and opening tables.

Also, taking a completely different approach akin to Leela Zero is fascinating, but clearly much harder.

Lastly, it would be fun to add online functionalities at some point.

Zurück
Zurück

Hopf Fibration (JavaScript)

Weiter
Weiter

CppSweeper (C++)