Join GitHub today
The Sudoku application that we (Bram Bonné and Wim Leers) wrote for Hasselt University as part of the course "Trimesteroverschrijdend Project" ("Multi-trimester Project"), in our second year (academic year 2007-2008).
This application is written in C++/Qt (Qt 4.3 back then — it has been made with the current stable version of Qt: Qt 4.7), and attempts to do everything "right", i.e. "the Qt way". It has become a showcase application for Qt: Nokia has awarded the “Qt Ambassador” title to it — you can see it on qt.nokia.com. Features include:
- cross-platform (it builds on all major platforms: Windows, Mac OS X and Linux)
- multi-threaded (i.e. always responsive for the end user, even when a new sudoku is being generated))
- fancy! (All dynamically generated, but based on a mock-up made by graphic designer Kaj Heijmans.)
- translatable (it's available in English, French and Dutch—the same language as the OS' language is loaded automatically)
- Doxygen documentation in all classes
- show the validity and solvability of the current sudoku
- provide hints for single cells in a sudoku
- solve the entire sudoku
- generate new sudokus at multiple difficulty levels
- timer (which is automatically paused when the application loses focus)
- open and save sudokus in its own custom format (which will remember your settings and timer)
- import and export to .csv format
- export to .png images
- print sudokus
- keyboard shortcuts for all functionality, but all functionality is also available via the mouse
- fullscreen mode
Unfortunately, we lost the original SVN repository, and we don't have a SVN repository dump. We only have the latest revision: revision 381, of June 10, 2008 14:20:37 GMT+2. Hence that is the version we are committing to this git repository, to provide the app for all to use, and hopefully continue development. Or at least to serve as an example of a fairly complete (yet relatively simple) Qt application. Bram Bonné (nickname: gooz) wrote the sudoku generation and solving algorithms (Sudoku.h) and the data structure it uses directly (Board.h). He also took care of the translations and finished off the reports, and tested the application on the Linux platform. Wim Leers (nickname: wimleers) wrote everything else (most importantly all things Qt and the multi-threading adaptation of Bram's sudoku algorithms), the testing on the Mac OS X and Windows platforms, and the build scripts for all platforms.
A project report is available, although it's written in Dutch.
The evolution of the GUI is documented and can be seen at the GUI evolution wiki page.
Mac OS X