An UCI compatible chess engine for fun
Report Bug
·
Request Feature
Table of Contents
Bob is just a simple chess engine with no pretention.
I love chess, but I'm awful at it, so I tough I could make an engine that would be as good as I'm meant to be.
Bob is meant to be compatible with UCI, so any chess frontend compatible with the protocol should be able to use him. I personally use KNights to develop him.
The project is being developed on linux. As such, I have no idea if it can be built on Windows or macOS.
That said, a cmake toolchain is provided for Windows cross-compilation.
All dependencies are taken care of in cmake, so you just need compiler compatible with C++17 and cmake.
On archlinux, this should suffice :
pacman -S base-devel cmake
If you want to cross-compile for Windows, you will also need mingw64
On archlinux, the package is mingw-w64 :
pacman -S mingw-w64
- Clone the repo
git clone https://github.com/Madahin/BobTheChessEngine
- Make a build directory and
cd
into itmkdir BobTheChessEngine/build && cd BobTheChessEngine/build
- Build the project
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/Toolchain-gcc-m64.cmake make
You can choose different toolchains depending on your needs :
- Linux x86 : Toolchain-gcc-m32.cmake
- Linux x64 : Toolchain-gcc-m64.cmake
- Windows x86 : Toolchain-mingw64-m32.cmake
- Windows x64 : Toolchain-mingw64-m64.cmake
TODO: explain how to use KNight
You can launch the unit tests with
./build/test/BobTheChessEngine_test
- Finishing the readme
- Writing the USAGE section
- Finishing the roadmap
- UCI Interface
- Gui -> Engine
- ucinewgame
- uci
- quit
- debug
- option
- isready
- setoption name [value ]
- position [fen | startpos ] moves ....
- go
- stop
- ponderhit
- Engine -> GUI
- id
- uciok
- readyok
- bestmove [ ponder ]
- info
- option
- Gui -> Engine
- Passing the generation move test suite
- Playing random legal move
- Improving AI
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Madahin - @madahin - @[email protected]
Project Link: https://github.com/Madahin/BobTheChessEngine
- Sebastian Lague for his incredible coding adventure video
- Chess Programming Wiki
- shredderchess.com for the UCI specification