Skip to content

P1X3R/zugblitz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zugblitz

Zugblitz is a UCI-compatible chess engine written in C (because it's simple enough to fit in my brain).

Why?

I started this project after watching Rey Enigma’s video about the match between Deep Blue and Garry Kasparov. Even though I barely understood what was happening due to my limited chess knowledge at the time, I became curious about how modern chess engines like Stockfish work, and how it’s possible to build something that can outperform a human at such an intellectually demanding game.

Along the way I learned a lot, and after countless hours debugging perft, I can confidently say that I no longer miss en passant captures.

Building

Requirements:

  • Make
  • C11-compatible compiler (clang is hardcoded in the makefile)
make CC=gcc MODE=release

This will build a release-optimized binary for your specific platform.

Warning

debug mode doesn't work with MinGW due to sanitizers.

Features

  • Full move generation: en passant, castling, promotions
  • Search algorithms: Alpha-Beta, PVS, quiescence search, null-move pruning
  • Move ordering heuristics: killer moves, history heuristics
  • Evaluation: incremental midgame/endgame evaluation with PSQTs tuned via Texel’s method
  • Optimizations: transposition tables, Zobrist hashing, LTO for release builds

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A UCI-compatible chess engine written in C

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors