Skip to content

nvanalfen/SudokuPuzzle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SudokuPuzzle

Work in progress

Solves a Sudoku puzzle

Files included:

  • Sudoku.py -> Contains the SudokuSolver class that represents a Sudoku puzzle and contains the functions needed to solve it
  • Box.py -> Contains the Box class which represents one of the boxes making up the 9x9 grid on a Sudoku puzzle
  • SudokuGUI.py -> PyQT GUI for interacting with the SudokuSolver class. SudokuSolver can be used without this, but this is a nice way for a user to input a puzzle
  • SudokuGUI.ui -> UI file for QTDesigner that made SudokuGUI.py
  • Book1.xlsx -> Sample Sudoku puzzle 1
  • Book2.xlsx -> Sample Sudoku puzzle 2
  • TestOutput.xlsx -> Answer for the puzzle in Book1.xlsx

To use the Sudoku solver, two options are available:

  • GUI Option
    • Run the SudokuGUI.py file to open the interface
    • Input the known values of the Sudoku puzzle you wish to solve in the appropriate places on the 9x9 grid given
    • Make sure the checkboxes for at least one of the solution methods is checked (I recommend always leaving analytical checked as brute force can take too long)
    • Click Solve
  • Non-GUI Options
    • Store the Sudoku puzzle you wish to solve in an Excel .xlsx file with the known numbers placed in the appropriate location on the 9x9 grid and 0 everywhere else in the 9x9 grid
    • Create a SudokuSolver Object ( puzzle = SudokuSolver() )
    • Run the read_grid method and pass in the name of your .xlsx file containing the puzzle ( puzzle.read_grid( "my_sudoku.xlsx" ) )
    • Run the solve method ( puzzle.solve() ) where you may optionally set one of the solution methods to false

Currently works, at least for all cases I have tried, but the following needs to be done

  • Rename all instances of SudokuSolver to SudokuPuzzle to be consistent with other similar projects of mine
  • Implement more advanced functions in the analytical search so the brute force search happens less frequently, even with more advanced puzzles

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages