add-piece-move-cache (#1)

Reviewed-on: #1
Co-authored-by: Josh <josh@joshuaschuett.com>
Co-committed-by: Josh <josh@joshuaschuett.com>
This commit is contained in:
2025-08-10 19:39:18 +00:00
committed by Josh
parent da31f8b6fe
commit 3ba72c0bc3
8 changed files with 322 additions and 1 deletions

View File

@@ -1 +1 @@
The goal of this project is to build a clean, fast chess engine in C that starts from a FEN string and produces fully legal moves, verified via PERFT for correctness and speed. It uses a bitboard architecture with precomputed attack caches (pawns, knights, king; sliders later) and a small, well-structured codebase thats easy to extend. The emphasis is on correctness-first (FEN → board → legal movegen → perft), performance through cache-friendly data and simple hot paths, and portability with minimal dependencies. A lightweight Python test suite (via ctypes) checks known attack patterns and guardrails, and the design leaves room to add sliders, make/unmake, search (alphabeta), and a UCI interface as follow-on milestones.
The goal of this project is to build a clean, fast chess engine in C that starts from a FEN string and produces fully legal moves, verified via PERFT for correctness and speed. It uses a bitboard architecture with precomputed attack caches (pawns, knights, king; sliders later) and a small, well-structured codebase thats easy to extend. The emphasis is on correctness-first approach (FEN → board → legal movegen → perft). Later, we will incorporate different algorithms and methods of evaluating chess positions to enable an AI player.