Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 2.52 KB

README.md

File metadata and controls

49 lines (38 loc) · 2.52 KB

Unit test status badge

Kaola is a UCI chess engine. It's in it's early stages, these are some of the features that have already been implemented:

Playing the engine.

This is not a standalone engine, you need a frontend that implements the UCI interface. If you don't know any chess GUI's, PyChess is a good one.

Non-standard UCI commands

To aid with debugging, the engine supports some commands not defined in the UCI specification

Command Description
board display the current board state
eval return the evaluation of the current position
moves print all legal moves in the current position
perft [depth] benchmark movegen in current position

Development

Kaola builds on zig version 0.10.0. Other versions may work, but likely won't due to the rapid development of the language.

The custom panic handler is disabled until #12935 is closed.

A neat trick for debugging is creating a file with a sequence of uci commands and then cat commands.txt | ./zig-out/bin/kaola.

Tests

Run all unit tests using zig build test.

Credits

During development, i looked at various other engines and stole some neat ideas from them. These include:

I also want to thank Maksim Korzh for his Youtube series on bitboard engines which initially inspired me to build my own engine.

Ressources