Skip to content

IlanIwumbwe/Ylva

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ylva.c

A simple chess engine in C.

This is a rewrite of an older version that was in C++. A few features are missing and some stuff needs to be fixed as shown in Todos. These will be worked on subject to time constraints.

Supported UCI commands

  • go : wtime, btime, winc, binc, movestogo, movetime, depth
  • position: fen, startpos
  • uci
  • isready

Other commands

  • perft n will count leaf nodes at depth n

Todos

  • Complete writing move ordering
  • Taper PSQT evaluation
  • Add PSQT evaluation

Acknowledgements

  • Richard Allbert's explanation of principle variation in his Vice series
  • Marcel Vanthoor's Rustic chess engine for move ordering and PSQT explanation. I created my PSQT tables using a combination of Rustic's and these psqt tables.
  • The Weiss engine, from which I got the idea to hash the first token of each uci command
  • Chess Programming Wiki
  • Oliver Brausch's Olithink, specifically his method for peeking std input to check for "stop" command interrupting engine search
  • Analog Hors' explanation of magic bitboards
  • Tord Romstard's source code for finding magic numbers
  • Sebastian Lague's video, which was also the original inspiration for Ylva.

License

MIT

About

UCI chess engine

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published