A comprehensive chess engine built with Python and Pygame, combining traditional AI algorithms with modern deep learning approaches.
“Every master was once a beginner. Every pro was once an amateur. Every icon was once an unknown.”
ChessCore starts as a fully playable chess game and evolves into a sophisticated engine capable of smart, human-like play. The project is designed to be educational and competitive—showcasing clean game architecture, classic search algorithms, and (eventually) deep learning.
- Full rules (all pieces, legal moves)
- Interactive GUI with Pygame
- Move validation & game state management
- Visual feedback for valid moves and selected pieces
- Turn-based gameplay with square highlighting
- Undo last move (
Zkey) - Algebraic-like notation output
- Clean, modular codebase
- Efficient board representation
- Extensible move generation
- Object-oriented design for growth
- Special Moves: Castling (both sides), En Passant, Promotion UI
- Game State: Check, Checkmate, Stalemate, Draw (50-move, repetition)
- UI: Move history panel, captured pieces, game clock, SFX
- Search: Minimax, Alpha-Beta, Iterative Deepening, Transposition Tables
- Evaluation: Material, positional factors, king safety, endgame heuristics
- Enhancements: Quiescence, move ordering, null-move pruning, LMR
- NN Design: Board encoding, CNNs, policy/value heads
- Training: Datasets, self-play generation, PyTorch/TensorFlow pipeline
- Advanced: AlphaZero-style with MCTS, RL from self-play
- Engine I/O: UCI protocol, GUI integration, engine vs engine
- Analysis: Position/game analysis, opening book, endgame tablebases
- Performance: Multithreading, GPU for NN, memory optimization, profiling
- Web: Flask/FastAPI UI, online multiplayer (WebSockets), real-time play
- Mobile: React Native/Flutter, touch UI, offline AI opponent
- Core: Python 3.8+
- GUI: Pygame
- AI/ML (planned): PyTorch or TensorFlow
- Database (planned): SQLite (game storage)
- Web (planned): Flask or FastAPI
- Testing (planned): pytest