add-fen-loader #5

Merged
Josh merged 8 commits from add-fen-loader into main 2025-08-16 16:51:53 +00:00
2 changed files with 63 additions and 1 deletions
Showing only changes of commit 4cb6d65720 - Show all commits

View File

@@ -0,0 +1,43 @@
name: Python tests (make)
on:
push:
branches: ["**"]
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-22.04
container: mcr.microsoft.com/devcontainers/python:3.11
steps:
- name: Install Node (and git/make) inside container
run: |
set -eux
apt-get update
# add gcc & toolchain while keeping your originals
apt-get install -y --no-install-recommends curl ca-certificates git build-essential make
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y --no-install-recommends nodejs
node -v
rm -rf /var/lib/apt/lists/*
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
if: hashFiles('requirements.txt') != ''
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Show Python info
run: |
python --version
pip --version || true
- name: Run tests via make
env:
LD_LIBRARY_PATH: build
run: make test

View File

@@ -1 +1,20 @@
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. # Chess Engine in C — Project Goal
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.
## Approach
- **Correctness-first engine:** `FEN → board → legal movegen → PERFT`
## Future Work
- Incorporate algorithms and evaluation methods for chess positions to enable an **AI player**.
- Build an API to facilitate chess games with the AI player over the web.
- Starting with a commandline client.
- Later building a web based client.
## Chess Engine Programming & Information
- **Chess Programming Wiki (CPW):** <https://www.chessprogramming.org/>
- **PERFT (definition & methodology):** <https://www.chessprogramming.org/Perft>
- **PERFT Results & test positions:** <https://www.chessprogramming.org/Perft_Results>
- **FEN reference:** <https://www.chessprogramming.org/Forsyth-Edwards_Notation>
- **Bitboards** <https://www.chessprogramming.org/Bitboards>