Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

aryann/follychess

Open more actions menu

Repository files navigation

       ,,
      ,/  \
     / 'O  |
    (   < _|
     \___/
     /   \
    /_____\
   /_______\
   (________)

   FollyChess

FollyChess is a UCI-compatible chess engine written in C++23.

Getting Started

Prerequisites

Ensure your environment is set up with the following:

  1. A C++23 compiler such as Clang 17+.

  2. Bazel.

Compiling

To build the optimized UCI command-line interface, run:

bazel build --compilation_mode=opt //cli:follychess

The binary will be written to bazel-bin/cli/follychess.

Usage

Using with a GUI (Recommended)

To play against FollyChess, install a UCI-compatible GUI such as:

Configure the GUI to point to the bazel-bin/cli/follychess executable.

Running via CLI

You can interact with the engine directly via standard input for debugging or scripting.

$ bazel-bin/cli/follychess

        ,,
      ,/  \
     / 'O  |
    (   < _|
     \___/
     /   \
    /_____\
   /_______\
   (________)

   FollyChess

d
8: r n b q k b n r
7: p p p p p p p p
6: . . . . . . . .
5: . . . . . . . .
4: . . . . . . . .
3: . . . . . . . .
2: P P P P P P P P
1: R N B Q K B N R
   a b c d e f g h

   w KQkq - 0 1

position startpos moves e2e4 e7e5
d
8: r n b q k b n r
7: p p p p . p p p
6: . . . . . . . .
5: . . . . p . . .
4: . . . . P . . .
3: . . . . . . . .
2: P P P P . P P P
1: R N B Q K B N R
   a b c d e f g h

   w KQkq e6 2 2

Development

The project includes several helper scripts for development and testing.

Script Description Example
benchmark Runs a single benchmark and updates the results in the benchmarks directory. ./benchmark attacks
perft Runs all Perft tests to verify move generation. ./perft
watch Watches the directory for file changes. Automatically recompiles (fastbuild) and runs unit tests on save. ./watch

Running Tests Manually

If you prefer not to use the watch script, you can run tests directly via Bazel:

bazel test //...

About

FollyChess is a UCI-compatible chess engine written in C++23.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.