How prmayekar/chess works
This is a Raylib desktop chess game: users choose pass-and-play or a side against Stockfish, play through move selection and validation, handle promotion and game-ending states, and receive a result; games are logged in UCI notation. The graph distinguishes the menu, game orchestration, chess rules and rendering, and engine integration. Core behavior is supported by excerpts and README statements; unsampled implementation details are not inferred.
Main entry points: game.cpp Game Flow · mainMenu.cpp Mode Menu · board.cpp Board Rules · main.cpp Application Entry
Components 13
User Interface
- Application Entry
src/main.cpp - Mode Menu
src/mainMenu.cpp - Raylib
Chess Gameplay
- Game Flow
src/game.cpp - Board Rules
src/board.cpp - Chess Pieces
src/piece.cpp - Board Tiles
src/tile.cpp - Game States
src/utils.h - UCI Game Log
src/game.cpp
Engine Integration
- Stockfish IPC
src/stockfish.cpp - Stockfish Engine
Shared Runtime
- Resource Lookup
include/resource_dir.h
Other components
- Player
Connections 14
- Player → Application Entry: starts
src/main.cpp - Application Entry → Mode Menu: displays
src/main.cpp - Player → Mode Menu: selects mode
src/mainMenu.cpp - Mode Menu → Game Flow: starts mode
src/mainMenu.cpp - Game Flow → Board Rules: updates and checks
src/game.cpp - Board Rules → Chess Pieces: uses
- Board Rules → Board Tiles: uses
- Game Flow → Game States: tracks states
src/game.cpp - Game Flow → Stockfish IPC: requests moves
src/game.cpp - Stockfish IPC → Stockfish Engine: exchanges UCI
README.md - Game Flow → UCI Game Log: writes moves
README.md - Mode Menu → Raylib: draws interface
src/mainMenu.cpp - Game Flow → Raylib: draws game
README.md - Game Flow → Resource Lookup: uses resource lookup
src/game.cpp