FedericoSaitta / Chess-Engine-in-cpp

MIT License
1 stars 0 forks source link

Aramis

Logo
[![lichess-bullet](https://lichess-shield.vercel.app/api?username=Aramis-Bot&format=bullet)](https://lichess.org/@/Aramis-Bot/perf/bullet) [![lichess-blitz](https://lichess-shield.vercel.app/api?username=Aramis-Bot&format=blitz)](https://lichess.org/@/Aramis-Bot/perf/blitz) [![lichess-rapid](https://lichess-shield.vercel.app/api?username=Aramis-Bot&format=rapid)](https://lichess.org/@/Aramis-Bot/perf/rapid)

Play against Aramis on Lichess

Introduction

Aramis is an uci-compliant chess engine that does not have its own GUI. This project has been largely inspired by my previously built python chess engine which I estimate to play around 1400 - 1500 ELO. Thanks to the speed brought by c++ many more optimizations were squeezed in the game-tree search bringing Aramis_v1_3_0 to a rating of 2407 in CCRL Blitz. The latest code for v1.5.0 can be found in the respective branch, though development has been slower due to the demanding computing resources and time required to test new patches, one day I wish to return to this project and aim for higher spots in the global leaderboards. Please contact me for any advice, critique or question about the bot :)

Table of Contents

Running the Engine:

If you are on windows-x64 or macos-x64 head to the 'Releases' section and download the executable. If you want to build this project, follow the build guide below.

Build Guide

Prerequisites

This project uses CMake for build configuration. Before you start, make sure you have the following software installed:

Cloning the Repository

To get started, clone the repository using the following command:

git clone https://github.com/FedericoSaitta/Chess-Engine-in-cpp
cd ChessEngine

Building the project

Head to the directory where the repository is located and run:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .

If you want to build the project in debug mode, use -DCMAKE_BUILD_TYPE=Debug .. instead. Note that in Debug mode a log-file is generated in the working directory and many run-time tests and sanity checks are performed causing the engine to slow significantly, Debug mode should not be used for play against humans or other engines.

Running the executable

For macOS and Linux: ./ChessEngine For windows:ChessEngine.exe

User Details:

UCI commands:

position:

go:

setoption name Hash value x, by default the hash size is of 256 MegaBytes. \ uci, isready, ucinewgame, quit.

Extra-UCI commands:

bench to run a pre-established search-test suite moveOrdering to display the pseudo-legal moves in the current position and their relative scores display to print the current board-state in the terminal

Technical Details:

The quoted ELO gains are from SPRT so the figures may not be accurate. SPSA and Texel-Tuning brought over 200 ELO so far.

Move Generation:

Board Evaluation:

Searching Algorithm Features:

Time Management:

Engine Strength:

The Engine matches were run in fast-chess with a book from Fish-Test with positions of 80 cp or less.

Version ELO Estimate CCRL Blitz ELO
1.4.0 2500 2749
1.3.0 2400 2407
1.1.0 1800 ----

Credits:

Room For Improvement: