How nishan-soni/chess-puzzles works
This repository turns downloaded chess games into puzzle positions, then lets a user solve those puzzles in a terminal UI. The README documents the daily retrieval, Stockfish processing, and append-to-file workflow; sampled Python source shows puzzle parsing, board rendering, and move handling. Pipeline internals were not sampled, so their documented relationships are cited to the README rather than presented as inspected implementation details.
Main entry points: process_game.sh Game processing · chess_puzzles.py Puzzle CLI · retrieve_games.sh Game retrieval · pipeline.sh Pipeline wrapper
Components 12
Puzzle generation
- Pipeline wrapper
pipeline/pipeline.sh - Game retrieval
pipeline/retrieve_games.sh - Game processing
pipeline/process_game.sh
Puzzle data
- Downloaded games
data/games_raw - Puzzle positions
data/puzzles.txt
Puzzle player
- Puzzle CLI
chess_puzzles.py - Puzzle loader
puzzle_loader.py - Puzzle state
chess_puzzles.py - Board display
chess_puzzles.py
Other components
- Puzzle solver
- Game source
- Stockfish
Connections 14
- Pipeline wrapper → Game retrieval: runs
README.md - Pipeline wrapper → Game processing: runs
README.md - Game retrieval → Game source: downloads games
- Game retrieval → Downloaded games: stores games
- Game processing → Downloaded games: processes games
README.md - Game processing → Stockfish: analyzes with
README.md - Game processing → Puzzle positions: appends positions
README.md - Puzzle solver → Puzzle CLI: runs
README.md - Puzzle CLI → Puzzle loader: loads puzzles
chess_puzzles.py - Puzzle loader → Puzzle positions: reads positions
puzzle_loader.py - Puzzle CLI → Puzzle state: creates state
chess_puzzles.py - Puzzle CLI → Board display: refreshes display
chess_puzzles.py - Puzzle state → Board display: supplies board
chess_puzzles.py - Puzzle solver → Board display: plays moves
chess_puzzles.py