Skip to content

shintakezou/Barbarossa

This branch is up to date with nionita/Barbarossa:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9c1220f · Nov 4, 2024
Mar 28, 2024
Apr 29, 2017
Nov 4, 2024
May 3, 2024
Feb 17, 2024
Apr 10, 2024
May 1, 2021
Aug 14, 2016
Dec 20, 2016
Feb 15, 2019
May 1, 2021
Apr 27, 2013
Dec 20, 2016
Apr 27, 2013
Oct 31, 2020

Repository files navigation

Barbarossa - a chess engine written completely in Haskell

Barbarossa is a UCI chess engine written completely in Haskell. UCI is one of 2 protocols used in the computer chess scene to communicate between a chess GUI and a chess engine. This way it is possible to write just the chess engine, which then works with any chess GUI.

I started in 2009 to write a chess engine under the name Abulafia. In 2012 I decided to rewrite the evaluation and search parts of the engine under the new name, Barbarossa.

My motivation was to demonstrate that even in a domain in which the raw speed of a program is very important, as it is in computer chess, it is possible to write competitive software with Haskell. The speed of Barbarossa (measured in searched nodes per second) is still far behind comparable engines written in C or C++. Nevertheless Barbarossa can compete with many engines - as it can be seen on the CCRL rating lists*, where is it currently listed with a strength of about 2200 ELO.

Barbarossa uses a few techniques which are well known in the computer chess scene:

  • in evaluation: material, king safety, piece mobility, pawn structures, tapped evaluation and a few other less important features
  • in search: principal variation search, transposition table, null move pruning, killer moves, futility pruning, late move reduction, internal iterative deepening.

I still have a lot of ideas which could improve the strength of the engine, some of which address a higher speed of the calculations, and some, new chess related features, which may reduce the search tree.

The last released version is Barbarossa v0.4.0 from December 2016.

*) http://www.computerchess.org.uk/ccrl/404/

About

Chess engine entirely written in Haskell

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 99.5%
  • TeX 0.5%