A UCI chess engine written in C++20.
This project is somewhat a hobby, it will serve to learn the ropes of chess programming. I also play chess, very humbly; and I was always curious of how the programs work.
I began some years ago, but without time, it never went far. I had only a move generator, a alpha-beta search, and that's almost all. I have now enough time to spend on the program. By luck, reading the forums, I discovered Vice, and the videos. Thay are great, and very instructive. So well, Im following the lessons, and Zangdar came to life. I found also the site from Bruce Moreland that explain a lot of things.
Why Zangdar ? Well look for the Naheulbeuk dungeon !!
I would like to thank specially the authors of Vice, TSCP, Gerbil. They helped me a lot understand several aspects of programmation. I also use the M42 library for generating attacks; and took inspiration from the Libchess library.
At present, Zangdar can play honestly. I done several matches, and I think Zangdar comes near 3000. I would never hoped to come this far. It has the following features :
Language
Board
Search
Parallel
Evaluation
Syzygy Tables
Opening Book
Communication
Usage
The program is only an engine, so it need one interface (Arena, Banksgui...).
I provide only binaries for Windows. I stopped developping with Linux, as this crush my windows boot. All are compiled in static, so you don't need extrernal libraries. By default, the opening book is disabled. It can be re-enabled by using an uci option. Zangdar will search the book in the binary's directory. This location can too be specified with an uci option. The book is of polyglot format, and must be named 'book.bin'.
Compilation You must have a C++ compiler that use at least C++20. I use QtCreator on Windows 11, that compiles with mingw. I provide also binaries for several architectures.