|
Sudoku Showcase
|
A clean and modular Sudoku application built in Python, designed to demonstrate software architecture, object-oriented design, and UI implementation skills.

This project provides:
This documentation includes both a project overview and a full API reference.
See the Roadmap for upcoming features.
This project was created as a technical showcase to demonstrate:
This project uses Tkinter for the graphical user interface.
Tkinter is included with most Python installations, but on some systems you may need to install it manually:
Usually included with Python from python.org If missing: reinstall Python or use Homebrew
Included in the official Python installer (make sure "*tcl/tk*" is selected)
Clone the repository, create and activate a Virtual Environment to install the package.
There are two options to run the application, either with the ui or on the command line interface.

The App starts a Sudoku Game with the Level Easy by default. You can change the Level in the top menu on New Game, choose your level and a new puzzle will be generated. There is only one solution even on the harder levels. If the ui feels too bright, go to Settings and toggle darkmode.
You can select or deselect a digit by clicking it in the row below the puzzle. The digit will be highlighted in the puzzle by default. To turn that off, go to Settings and toggle highlight digits. The rules of sudoku are straight forward. Each digit (from 1 to 9) shall only exists once per row, column, block (3x3 fields). To visualize the sudoku rules click toggle highlight cells.
When selected a digit, click on an empty cell, where you think the digit has to be. On violating the rules the cells being violated are highlighted in red for a second and the mistake counter in red on the top left increases.
If there are no rules violated, the digit will appear in blue font. Note that a digit in a cell not violating the rules, but wrong in terms of the overall puzzle will not increase the mistakes. If realized a digit is set to the wrong cell, click the the Erase-Button on top of the puzzle and then click desired cell.
If there are three mistakes made or if the puzzle is successfully solved, the game will end and you can start a new game, if you wish to. And until then, good luck, have fun!
The project is structured into distinct layers derived from the Model-View-Controller-Architecture:
This separation ensures maintainability and extensibility. See the full API Documentation on Github Pages.
There are tests implemented using pytest in the tests-directory.
As the project is still in development, only tests for the following modules have been implemented yet:
AI tools, such as ChatGPT and GitHub Copilot, were used as a supporting tool during development (e.g. for feedback and debugging). All implementation decisions, architecture, and final code were written and verified by the author.
This project is licensed under the MIT License. See the LICENSE file for details