Add FEN string to readme #14
24
README.md
24
README.md
@@ -5,6 +5,30 @@ Build a clean, fast chess engine in C that starts from a FEN string and produces
|
||||
## Approach
|
||||
- **Correctness-first engine:** `FEN → board → legal movegen → PERFT`
|
||||
|
||||
## FEN (Forsyth–Edwards Notation)
|
||||
|
||||
FEN is a single line string that describes a chess position. Format:
|
||||
|
||||
<pieces> <side> <castling> <en-passant> <halfmove> <fullmove>
|
||||
|
||||
- **pieces**: 8 ranks (8→1) separated by `/`; letters for pieces (`PNBRQK`/`pnbrqk`), digits for empty squares.
|
||||
- **side**: `w` (White) or `b` (Black) to move.
|
||||
- **castling**: any of `KQkq` or `-` if none.
|
||||
- **en-passant**: target square after a two-step pawn move, or `-`.
|
||||
- **halfmove**: moves since last pawn move/capture (50-move rule).
|
||||
- **fullmove**: move number (starts at 1, increments after Black’s move).
|
||||
|
||||
**Example (starting position)**
|
||||
|
||||
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
|
||||
|
||||
- pieces: starting layout
|
||||
- side: `w` (White to move)
|
||||
- castling: `KQkq` (both sides can castle both ways)
|
||||
- en-passant: `-`
|
||||
- halfmove: `0`
|
||||
- fullmove: `1`
|
||||
|
||||
## Future Work
|
||||
- Incorporate algorithms and evaluation methods for chess positions to enable an **AI player**.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user