A complete chess engine built in Java from scratch, featuring bitboard representation, minimax search with alpha-beta pruning, and a Swing-based GUI.
- Bitboard Representation: 12 separate 64-bit bitboards for efficient piece storage
- Complete Move Generation: All pieces, special moves (castling, en passant, promotion)
- Legal Move Validation: Handles pins, checks, and checkmate detection
- AI Opponent: Minimax search with alpha-beta pruning (configurable depth)
- GUI: Interactive chess board with piece images and move highlighting
- FEN Support: Load any position from FEN notation
- Precomputed attack tables for knights and kings
- Sliding piece move generation with ray-casting
- Position evaluation with material counting
- Make/unmake move system for search
- Clone the repository
- Open in your Java IDE
- Run
gui/ChessApp.java
src/
├── engine/
│ ├── Evaluator.java
│ ├── GameState.java
│ ├── MoveGenerator.java
│ ├── Move.java
│ ├── Position.java
│ └── Search.java
└── gui/
├── BoardPanel.java
├── ChessApp.java
├── ChessClock.java
├── ClockPanel.java
├── GameController.java
├── GameSetupDialog.java
│── SoundPlayer.java
└── resources/
├── images
└── sounds
