Skip to content
/ Qudoku Public

Qt based cross platform Sudoku solver

License

Notifications You must be signed in to change notification settings

dg-505/Qudoku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qudoku is a tool that can solve sudoku puzzles with human-like techniques.
It is able to display the solution step-by-step with a description of what
each step does.



##############################
##### Usage instructions #####
##############################



Type in the fields that are pre-defined and those you alread have solved.

You can load (Alt+L) and save (Alt+S) sudokus in the following format:
.3..........195.....8....6.8...6....4..8....1....2.....6....28....419..5.......7.
Compare the example in "Qudoku/Code/data/example.txt".
Example from upload.wikimedia.org/wikipedia/commons/9/99/Sudoku_problem_1.svg

If you want to select specific solving techniques that shall be used during the
solving process, you can choose them via the "Select techniques" button
    (Alt+T).

To view all candidates at this given status, click the "Candidates" button
    (Alt+C).
To view the step-by-step solution process, click the "Step-by-step" button
    (Alt+E).
To view the solution, click the "Solve" button.
     (Alt+V)
To clear the fields and the output window, click the "Clear" button.
    (Alt+C)
To exit and close the program, click the "Quit" button.
    (Alt+Q)



##########################################
##### Build and release instructions #####
##########################################



Qudoku is currently built with Qt version 5.15.16 on Windows 10 version 22H2
and on Ubuntu 20.04.6.

Repository structure:
"Qudoku/Code" contains the source code of the program.

"Qudoku/util" contains:
 - some auxiliary files e.g. needed to create a Setup for Windows,
   an AppImage and a .deb package for Linux
 - source files for the icons



Workflow to create a new release on Windows (tested on Windows 10 22H2):
1.) From the directory "Qudoku\util\icons\" run the bash script "createIcons.sh"
    if the icons got changed.
2.) Compile the source code with your preferred method (tested with Qt Creator).
    Needs Qt 5.15.16 installed and it's location known by the compiler or IDE.
3.) From the directory "Qudoku\util\" run the bash script "createInstaller.bat"
    to create a Setup file in the "Qudoku\release\" directory. When prompted,
    select the executable program "Qudoku.exe", for which the installer shall be
    created (default is "Qudoku\build\QtCreator\Release\Qudoku.exe").
4.) Execute "Qudoku\release\Qudoku-X.Y.Z.exe" to install the application.

Tools needed to create a Windows installer:

WinDeployQt (is part of the Qt framework):
installed in "C:\Qt\5.15.16\mingw81_64\bin\windeployqt.exe"

InnoSetup Compiler:
installed in "C:\Program Files (x86)\Inno Setup 6\ISCC.exe"



Workflow to create a new release on Linux (tested on Ubuntu 20.04.6):
1.) From the directory "Qudoku/util/icons/" run the bash script "createIcons.sh"
    if the icons got changed.
2.) Compile the source code using your preferred method (tested with CLion).
    Needs Qt 5.15.16 installed and it's location known by the compiler or IDE.
3.) From the directory "Qudoku/util/" run the bash script "createDeb.sh" to
    create a .deb package in the "Qudoku/release" directory. When prompted,
    select the executable binary "Qudoku", for which the .deb package shall be
    created (default is "Qudoku/build/Focal/Release/Qudoku") and the path to the
    Qt installation (default is "~/Qt/5.15.16/gcc_64").
4.) From the directory "Qudoku/util/" run the bash script "createAppImage.sh" to
    create an AppImage in the "Qudoku/release" directory. When prompted, select
    the executable binary "Qudoku", for which the AppImage shall be created
    (default is "Qudoku/build/Focal/Release/Qudoku").
    This needs "qmake" available in the "~/Qt/5.15.16/gcc_64/bin/" directory.

Tools needed to create an AppImage:

LinuxDeployQt continuous build:
installed in "Qudoku/util/linuxdeployqt-continuous-x86_64.AppImage"

To install the .deb package, run "sudo dpkg -i Qudoku/release/qudoku-X.Y.Z"
or install it via a software center.

To execute theAppImage on Ubuntu 22.04 or newer, your system needs FUSE
version 2.x installed: You can install it via "sudo apt install libfuse2".



####################################################
##### File system structure (deb installation) #####
####################################################



/
|-- home
    |-- <USER>
        |-- .qudoku (created on first app start)
            |-- data
                |-- example.txt
            |-- Qudoku.ini (configuration file)
|-- opt
    |-- qudoku
        |-- bin
            |-- platforms
                |-- libqxcb.so (platform plugin)
            |-- Qudoku (executable binary)
        |-- i18n
            |-- *.qm (translation files)
        |-- lib
            |-- libicudata.so.56 (all required shared libraries)
            |-- libicui18n.so.56
            |-- libicuuc.so.56
            |-- libQt5Core.so.5
            |-- libQt5DBus.so.5
            |-- libQt5Gui.so.5
            |-- libQt5Widgets.so.5
            |-- libQt5XcbQpa.so.5
            |-- libxcb-xinerama.so.0
        |-- Readme
        |-- license.txt
|-- usr
    |-- local
        |-- bin
            |-- qudoku (bash script located in the default $PATH to call the
                        actual program from /opt/qudoku/bin/Qudoku)
        |-- share
            |-- applications
                |-- qudoku.desktop (Desktop configuration file)
            |-- icons
                |-- hicolor
                    |-- {XY}x{XY}
                        |-- apps
                            |-- qudoku.png (PNG icons)
                    |-- scalable
                        |-- apps
                            |-- qudoku.svg (SVG icon)