/siegbert

♞ An (UCI || XBoard) compatible chess engine

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Build Status

This is my attempt at writing a serious chess engine.

For the moment, I consider it as a framework for experiencing ideas. It "works" enough to be able to play... quite bad

Siegbert Tarrasch

Existing features :

  • Moves generation :

  • Minimax :

    • detects threefold repetitions (by tracking the last 4 hashes)
    • multithreaded search
    • minimax with alpha-beta pruning w/ transposition table ( ttable needs improvements)
    • (for the moment) dummy moves sorting

TODO:

    • improve compatibility with UCI
    • multi-threading
    • Embedded openings books
    • nn-based moves sorter
    • better logging
    • understand what goes wrong with my minimax
    • let it become less suicidal
    • performance ++ ?
    • implement a real moves sorter (using some kickass IA algorithm)

How to compile :

plain c++17. tested with g++, might also work with clang (msvc ?)

    sudo apt install libboost-regex-dev
    mkdir -p build && cd build && cmake .. && make -j8

How to test :

xboard :

    xboard -debugMode true -fcp build/siegbert -scp build/siegbert

type ctrl-t and watch it loose against itself

uci : (incoming)