Skip to content

petur/seawall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5c18c92 · Mar 1, 2025
Nov 28, 2024
Sep 5, 2024
May 26, 2022
Feb 20, 2025
Jun 29, 2023
Oct 11, 2022
Feb 20, 2025
Sep 25, 2022
Sep 5, 2024
Mar 1, 2025
Nov 12, 2022

Repository files navigation

seawall

This is an UCI chess engine. It started as an attempt to build a minimal program that was able to play chess. Over time, it has gained features to make it stronger, but it still implements only a subset of UCI necessary to play games. The evaluation function is based on piece square tables and bitboards; a loop over the pieces is used only to calculate mobility. The evaluation has been tuned using positions from self-play games. The UCI implementation is single threaded, using polling to handle input during search.

Some ideas have been borrowed more directly than others; the obstruction difference algorithm is based on the version from Chess Movegen, while the use of a low pass filter and capture history for move ordering were borrowed from Stockfish.

Building

To build seawall, run make in the source directory. The C++ compiler can be specified using the CXX variable, for example make CXX=clang++ will build using CLang.

By default, this will create an executable optimized for the current platform. See the Makefile for options that can be used to configure the build.

The build only requires Make and a C++17 compiler. It has only been tested with GNU Make, GCC, and CLang.