A Python command-line Sudoku game built using Test-Driven Development (TDD).
The long-term goal of this project is to create an adaptive Sudoku experience that adjusts puzzle difficulty based on player skill and behavior. Instead of relying only on fixed difficulty levels, the game will eventually analyze player performance and dynamically select puzzles that provide an appropriate challenge.
- Sudoku board representation
- Move validation
- Unit tests using Pytest
- TDD-based development workflow
- Sudoku solver with uniqueness checks
- Puzzle generation by difficulty
- Interactive command-line interface
- Player skill tracking
- Adaptive difficulty selection
- Save and load functionality
git clone https://github.com/nulllvector/adaptive-sudoku-cli.git
cd adaptive-sudoku-cli
pip install -e .python -m pytestsrc/sudoku/
board.py Grid representation and move validation.
solver.py Solving and uniqueness checks.
generator.py Puzzle creation.
puzzle.py Puzzle metadata and givens.
game.py Active game session state.
player_model.py Skill estimation from player behavior.
difficulty.py Difficulty levels and selection.
storage.py Local profile and save data.
cli.py Terminal interface.
This project follows the Test-Driven Development (TDD) cycle:
- Write a failing test.
- Implement the smallest amount of code needed to pass.
- Refactor while keeping all tests green.
- Complete board validation and game rules.
- Implement a Sudoku solver.
- Generate puzzles with guaranteed unique solutions.
- Build a playable CLI experience.
- Add player analytics and adaptive difficulty.
- Improve persistence and user profiles.
This project is currently for learning and experimentation.