diff --git a/README.md b/README.md index d2c5ddb..3c75d50 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,52 @@ -# Zeal -**Zeal** is a UCI-compliant chess engine written in Rust. I began writing Zeal as a side project while learning Rust. Beating a top engine like Stockfish felt like a long journey, so it seemed fitting to pair that challenge with learning Rust. Zeal is now nearing its first release, though it's still far from its ultimate goal. +

Zeal

-## Running and building Zeal -### Play on Lichess -[lichess]() - TODO +**Zeal** is a UCI-compliant chess engine written in Rust. I started developing it as a side project while learning Rust. -### Run locally +## Running Zeal ``` git clone https://github.com/stefiosif/zeal.git -cargo run -- --mode uci +cargo r -r -- --mode uci ``` -### Run on Cutechess GUI (Windows) -``` -git clone https://github.com/stefiosif/zeal.git -cd scripts -./build_windows_bat.sh -``` -After building, find the executable in target/x86_64-pc-windows-gnu/release. Use zeal.bat to add Zeal to the Cutechess GUI. +## Features +- Board Representation + - Bitboards + - Redundant Mailbox +- Move Generation + - Magic Bitboards + - Pseudo-Legal Generator + - Unmake Move +- Communication Protocol + - UCI +- Search + - Negamax + - Alpha-Beta Pruning + - Quiescence +- Move Ordering + - MVV-LVA + - Transposition Table +- Evaluation + - PeSTO's +- Time Management + - Iterative deepening + - Hard limit -## Core -### Board Representation -- Bitboards -- Redundant Mailbox for piece-square look ups -### Move Generation -- Pseudo-legal move generation -- Magic bitboards for sliding pieces -- Make/Unmake instead of Copy/Make -### Communication Protocol -- UCI -### Search -- Negamax -- Alpha Beta -- Quiescence -- Move ordering (MVV LVA) -### Evaluation -- Material evaluation -- Piece-Square table evaluation - -## Next features -- [ ] Iterative deepening -- [ ] Principal Variation -- [ ] Zorbist hashing -- [ ] Transposition tables -- [ ] ... ## Rating -There's no ratings yet for Zeal. +Unrated. ## Acknowledgements -Huge thanks to CodeMonkeyKing and his chess programming videos. His simplistic approach helped me understand the components that constitute a chess engine. Rustic's [roadmap](https://rustic-chess.org/introduction/roadmap.html) guided me in identifying which part of the engine to build next, while the book is an excellent resource for understanding various chess programming concepts. The [Chess Programming Wiki](https://www.chessprogramming.org/Main_Page) provides detailed information about all chess programming topics. Last but not least, I have been reading the code of various chess engines to take ideas, some of them are [bbc](https://github.com/maksimKorzh/bbc), [rustic](https://github.com/mvanthoor/rustic), [tcheran](https://github.com/jgilchrist/tcheran), [purple](https://github.com/JLErvin/purple) and [rush](https://github.com/lefebvreb/rush). +Huge thanks to: +- CodeMonkeyKing for his chess programming videos +- Chess Programming Wiki +- `Engine Programming` discord server -Amazing tools: -- [Bitboard Calculator](https://gekomad.github.io/Cinnamon/BitboardCalculator/) -- [Lichess Editor](https://lichess.org/editor) -- [cutechess](https://github.com/cutechess/cutechess) -- [perftree](https://github.com/agausmann/perftree) +Development tools: + - [Bitboard Calculator](https://gekomad.github.io/Cinnamon/BitboardCalculator/) + - [Lichess Editor](https://lichess.org/editor) + - [cutechess](https://github.com/cutechess/cutechess) + - [webperft](https://analog-hors.github.io/webperft/) -Other resources: -- [The Fascinating Programming of a Chess Engine](https://youtu.be/w4FFX_otR-4?si=_Rt4wcJZsS2duMQM) -- [Coding Adventures: Making a Better Chess Bot](https://youtu.be/_vqlIPDR2TU?si=PKWe_Qu_CPGwIAwE) -- Writing a Chess Engine [Move Generation](https://www.josherv.in/2021/03/19/chess-1/) and [Move Selection](https://www.josherv.in/2022/12/17/chess-2/) +Cool videos: + - [The Fascinating Programming of a Chess Engine](https://youtu.be/w4FFX_otR-4?si=_Rt4wcJZsS2duMQM) + - [Coding Adventures: Making a Better Chess Bot](https://youtu.be/_vqlIPDR2TU?si=PKWe_Qu_CPGwIAwE)