Skip to content

erenyesilyurt/anka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anka Chess Engine

Anka is an artificial intelligence system capable of playing chess. You can use it to play chess against the computer or to analyze your games.

Requirements

Anka is a command-line only tool. You need to have a UCI compatible chess GUI program to use it comfortably. Some free options are:

You also need a relatively modern 64-bit CPU that supports BMI1.

Features

  • Alpha-beta pruning with principal variation search
  • Null move pruning, late move reductions, futility pruning
  • Transposition table
  • Heuristic evaluation function with material and mobility bonuses, piece square tables, isolated pawn and passed pawn evaluation etc.
  • Evaluation parameters tuned with Texel tuning
  • Syzygy tablebase support thanks to Pyrrhic

Build Instructions

Although Anka can be built for platforms other than Windows, only the Windows build has been tested.

  1. Download premake5 for your platform.
  2. Generate a Visual Studio solution using premake5. You can use older versions of VS by changing the version number at the end.
./premake5.exe vs2019 # this creates a Visual Studio 2019 solution
  1. Open the solution with Visual Studio, set the solution configuration to "Release" and build it as usual.

On Linux, you would generate and use a Makefile instead: (Not tested)

./premake5 gmake2 # this creates a Makefile
make config=Release

For further instructions on using premake5, visit https://premake.github.io/docs/Using-Premake

Other Notes

Some features available in the UCI protocol (such as pondering, multi-pv and searching selected moves only) are not supported.

Anka implements some custom non-UCI commands for engine testing purposes. All custom commands are prefixed with anka_.

  • anka_print: Print an ASCII board representation along with other position info
  • anka_eval: Print static evaluation of the function
  • anka_perft d: Run a perft test to depth d with bulk counting at leaf nodes

Thanks to

About

A UCI chess engine

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages