How godofjan/chessengine-with-sfml works
This is a C++/SFML graphical chess game. A player drags a piece; the Game controller requests legal moves, commits a legal move to the Engine, and the UI renders the board and move feedback. Keyboard and reset events also dispatch to the Engine. The README documents special rules, game-end detection, history, and FEN conversion. The sampled sources show the main UI/engine wiring, but not all engine internals; uncertain internal call links are omitted.
Main entry points: engine.cpp Move Engine · render.cpp Renderer · game.cpp Game Controller · processEvents.cpp Event Handler
Components 14
Game UI
- Game Controller
src/UI/game.cpp - Event Handler
src/UI/processEvents.cpp - Renderer
src/UI/render.cpp - FEN Conversion
src/UI/game.cpp
Chess Engine
- Move Engine
src/Engine/engine.cpp - Legal Moves
src/Engine/engine.cpp - Special Rules
src/Engine/engine.cpp - End Detection
src/Engine/engine.cpp - Board State
src/Engine/engine.hpp - Move History
src/Engine/engine.hpp
Visual Assets
- Piece Textures
Assets - UI Icons
Icons
Other components
- Player
- SFML Window
Connections 18
- Player → SFML Window: uses
- SFML Window → Event Handler: delivers events
- Game Controller → Event Handler: processes events
- Game Controller → Move Engine: requests legal moves
- Game Controller → Move Engine: commits move
- Game Controller → Renderer: renders frame
- Event Handler → Move Engine: undo, redo, reset
- Move Engine → Legal Moves: calculates
- Move Engine → Special Rules: applies rules
- Move Engine → End Detection: checks outcome
- Move Engine → Board State: updates
- Move Engine → Move History: records moves
- Renderer → Board State: reads position
- Renderer → Move History: reads move index
- Renderer → Piece Textures: loads textures
- Renderer → UI Icons: loads icons
- Renderer → SFML Window: draws frame
- FEN Conversion → Board State: converts position