3 releases
0.1.2 | Nov 18, 2021 |
---|---|
0.1.1 | Nov 18, 2021 |
0.1.0 | Nov 18, 2021 |
#2123 in Game dev
24KB
603 lines
crabfish 🦀♟️
Crabfish is a chess engine written from scratch, in rust. It can provide a strong next move for the current player, or an evaluation of a board position.
I've been working on this engine for fun. It's playing strength, based on my tests, is around 2000 elo (in the chess.com pool). Based on what I've seen, it's tactical play is quite good but it's positional play sucks.
Install
cargo install crabfish
Build From Source
git clone https://github.com/MonliH/crabfish.git
cd crabfish
cargo run --release
Note: the --release
flag when building is VERY IMPORTANT.
The engine can not search very deep without the optimizations provided by it.
Usage
You can either use the cli program, with the move
subcommand, help:
./target/release/crabfish move --help
Or, if you want to use a chess gui supporting the UCI proticol, launch the engine with the uci
argument in your gui:
./target/release/crabfish uci
Techniques
- Negamax
- Alpha-Beta pruning
- Iterative deepening
- Principal Variation Search
- Null-move heuristic
- Reverse futility pruning
Dependencies
~2.5MB
~39K SLoC