A chess engine written in Rust.
- Bitboard-based board representation
- Full legal move generation (castling, en passant, pawn promotion)
- Check detection
- Draw detection: stalemate, insufficient material, threefold repetition, fifty-move rule
- FEN import
- Zobrist hashing for position tracking
Run the game from the terminal:
cargo runMoves are entered as two squares separated by a space (e.g. e2 e4). For pawn promotion, append the piece type as a third argument (e.g. e7 e8 q).
src/
├── attacks/ # Attack generation (rays, knight, pawn)
├── game/ # Board state, move gen, rules, FEN, pieces
└── utils/ # Bitboard type, Zobrist hashing