Skip to content

severeduck/Clarity

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clarity

Relatively strong UCI chess engine

Feature List:

CLI:

  1. Functional (but not complete) UCI implementation
  2. printstate: shows the state of the board.
  3. perftsuite : performs a suite of perft tests, currently only supports the suite ethereal.
  4. perft : performs a perft test from the current position and outputs the result.
  5. splitperft : performs a perft test from the current position and outputs the result seperated by which move is the first one done.
  6. getfen: outputs a string of Forsyth-Edwards Notation (FEN) that encodes the current position.
  7. incheck: outputs if the current position is in check or not.
  8. evaluate: outputs the evaluation of the current position.
  9. bench : performs the bench test, a fixed depth search on a series of 50 positions.

Board Representation:

  1. Copymake moves
  2. Board represented using 8 bitboards
  3. Pext bitboards, lookups, and setwise move generation
  4. Repetition detection
  5. Incremental Zobrist hashing
  6. Incremental PSQT updates

Search:

  1. PVS search
  2. Aspiration windows
  3. Transposition Table(TT) cutoffs
  4. Reverse Futility Pruning
  5. Null Move Pruning
  6. Late Move Reductions (log function, generated on startup)
  7. Fail-soft

Evaluation:

  1. Tuned PSQTs (soon to be NNUE)

Move ordering:

  1. TT best move
  2. MVV-LVA
  3. Killer Move Heuristic
  4. History Heuristic

Special Thanks (in no particular order):

Toanth: General help and explaining things I didn't understand before

Ciekce: Preventing the cardinal sins of C++ since day 1

RedBedHed: Lookup tables for move generation

JW: More random C++ things

A_randomnoob: Helping with a lot of random engine bits

zzzzz: Ideas, planning, and a lot that I probably forgot

Logo generated by AI

About

Relatively strong UCI chess engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 74.2%
  • C 25.0%
  • CMake 0.8%