This repo was my first foray into chess programming, and it taught me a lot!
I've since split apart the various pieces here into their own repositories.
The primary ones I'd have you visit are chessie
, my chess move generation library, and toad
, the engine that succeeded brogle
.
I'm leaving this repository up for now, but may remove it in the future.
Brogle (pronounced 'brog-lee' (like 'broccoli')) is a UCI-compatible chess engine.
This repository is a huge work-in-progress. Once the code reaches a state that I am content with, I will release a version 1.0.
The engine is where the source code for Brogle actually lives. Inside you can find the components for UCI-compatibility, search, evaluation, and more.
The core library is a home-rolled implementation of all the rules of chess. I intend to separate this into it's own repository later and publish it on crates.io.
The tools crate is a collection of tools I used during the development of this engine. These are mostly meant for me, so don't judge me if they're poorly-written or outdated.
Compatible with the Universal Chess Interface protocol
Magic Bitboards for sliding piece movement (rook/bishop/queen)
Search
Evaluation
More features to be implemented as I find time!
This project is written in Rust. Since I (presently) don't have any precompiled binaries, you need to build from source with Cargo.
Once you've downloaded the code, a simple cargo run --release --bin brogle
will launch the engine.
Special thanks to all