Skip to content

An UCI compatible chess engine for !!FUN!!

License

Notifications You must be signed in to change notification settings

Madahin/BobTheChessEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Bob the Chess Engine

An UCI compatible chess engine for fun
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

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.

(back to top)

Getting Started

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.

Prerequisites

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

Compilation

  1. Clone the repo
    git clone https://github.com/Madahin/BobTheChessEngine
  2. Make a build directory and cd into it
    mkdir BobTheChessEngine/build && cd BobTheChessEngine/build
  3. 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

(back to top)

Usage

Chess frontend

TODO: explain how to use KNight

Testing

You can launch the unit tests with

./build/test/BobTheChessEngine_test

(back to top)

Roadmap

  • 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
  • Passing the generation move test suite
  • Playing random legal move
  • Improving AI

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Madahin - @madahin - @[email protected]

Project Link: https://github.com/Madahin/BobTheChessEngine

(back to top)

Acknowledgments

People

Documentation

Technologies used

(back to top)

About

An UCI compatible chess engine for !!FUN!!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published