diff --git a/.gitea/workflows/run-tests.yml b/.gitea/workflows/run-tests.yml new file mode 100644 index 0000000..b2f2b27 --- /dev/null +++ b/.gitea/workflows/run-tests.yml @@ -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 \ No newline at end of file diff --git a/README.md b/README.md index 85be545..848afcb 100644 --- a/README.md +++ b/README.md @@ -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 that’s 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. \ No newline at end of file +# 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):** +- **PERFT (definition & methodology):** +- **PERFT Results & test positions:** +- **FEN reference:** +- **Bitboards** \ No newline at end of file