Chess-Raylib is structured in layers:
- GUI Layer (Raylib)
- Game Logic Layer
- Board State Management
- Handles window management
- Renders game board and pieces
- Processes user input
- Manages animations
- Validates moves
- Manages game state
- Handles special moves
- Detects check/checkmate
- Loads piece textures
- Manages piece resources
- Handles piece rendering
- User Input → GUI Layer
- GUI Layer → Game Logic
- Game Logic → Board State
- Board State → GUI Layer (render)
chess/
├── src/
│ ├── gui.c
│ ├── game_logic.c
│ └── pieces.c
├── header/
│ ├── gui.h
│ ├── game_logic.h
│ └── pieces.h
└── assets/
└── images/