From a13e2c04e6556d0ad5dda3321fa37f00db5c88f2 Mon Sep 17 00:00:00 2001 From: LuisMSuarez <140195810+LuisMSuarez@users.noreply.github.com> Date: Fri, 21 Jul 2023 22:10:44 -0700 Subject: [PATCH] initial code (#2) --- Class Modules/List.cls | 37 +++++++++++ Class Modules/Node.cls | 132 +++++++++++++++++++++++++++++++++++++ Class Modules/Position.cls | 14 ++++ Modules/SudokuSolver.bas | 44 +++++++++++++ Modules/View.bas | 37 +++++++++++ README.md | 6 +- image-1.png | Bin 0 -> 33364 bytes image.png | Bin 0 -> 33364 bytes 8 files changed, 269 insertions(+), 1 deletion(-) create mode 100644 Class Modules/List.cls create mode 100644 Class Modules/Node.cls create mode 100644 Class Modules/Position.cls create mode 100644 Modules/SudokuSolver.bas create mode 100644 Modules/View.bas create mode 100644 image-1.png create mode 100644 image.png diff --git a/Class Modules/List.cls b/Class Modules/List.cls new file mode 100644 index 0000000..b1bd3d0 --- /dev/null +++ b/Class Modules/List.cls @@ -0,0 +1,37 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "List" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit + +'List of properties +Private Head As node +Private Tail As node +Public Length As Integer +Public Sub Add(node As node) + If Tail Is Nothing Then + Set Tail = node + Set Head = node + Else + Set Tail.NextNode = node + Set node.PrevNode = Tail + Set Tail = node + End If + Length = Length + 1 +End Sub +Public Function PopNode() As node + If Length < 1 Then + Err.Raise vbObjectError + 513, "List", "Cannot pop a node on an empty list!" + End If + + Set PopNode = Tail + Set Tail = PopNode.PrevNode + Length = Length - 1 +End Function + + diff --git a/Class Modules/Node.cls b/Class Modules/Node.cls new file mode 100644 index 0000000..af832b3 --- /dev/null +++ b/Class Modules/Node.cls @@ -0,0 +1,132 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "Node" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit + +'List of properties +Private Values(1 To 9, 1 To 9) As Integer +Public NextNode As node +Public PrevNode As node +Private filledValues As Integer +Private Sub Class_Initialize() + filledValues = 0 +End Sub +Public Function GetValue(row As Integer, col As Integer) As Integer + GetValue = Values(row, col) +End Function +Public Sub SetValue(row As Integer, col As Integer, value As Integer) + Values(row, col) = value + If value <> 0 Then + filledValues = filledValues + 1 + End If +End Sub +Public Function Clone() As node + Set Clone = New node + Dim row As Integer + Dim col As Integer + + For row = 1 To 9 + For col = 1 To 9 + Call Clone.SetValue(row, col, Values(row, col)) + Next col + Next row +End Function +Public Function IsValidSudoku(pos As position) As Boolean + Dim value As Integer + Dim row As Integer + Dim col As Integer + Dim Map(1 To 9) As Boolean + + 'scan row where new value was inserted + Call ResetMap(Map) + For col = 1 To 9 + value = Values(pos.row, col) + If value <> 0 Then + If Map(value) Then + 'Duplicate number found + IsValidSudoku = False + Exit Function + Else + Map(value) = True + End If + End If + Next col + + 'scan col where new value was inserted + Call ResetMap(Map) + For row = 1 To 9 + value = Values(row, pos.col) + If value <> 0 Then + If Map(value) Then + 'Duplicate number found + IsValidSudoku = False + Exit Function + Else + Map(value) = True + End If + End If + Next row + + 'scan square where new value was inserted + Dim squareCornerRow As Integer + Dim squareCornerCol As Integer + squareCornerRow = pos.row - (pos.row - 1) Mod 3 + squareCornerCol = pos.col - (pos.col - 1) Mod 3 + Call ResetMap(Map) + + For row = 0 To 2 + For col = 0 To 2 + value = Values(row + squareCornerRow, col + squareCornerCol) + If value <> 0 Then + If Map(value) Then + IsValidSudoku = False + Exit Function + Else + Map(value) = True + End If + End If + Next col + Next row + + 'no violations found, so it's a valid Sudoku + IsValidSudoku = True +End Function +Public Function IsSolvedSudoku() As Boolean + IsSolvedSudoku = filledValues = 9 * 9 +End Function +Public Function FilledValueCount() As Integer + FilledValueCount = filledValues +End Function +Public Function NextEmptyPosition() As position + Set NextEmptyPosition = New position + Dim row As Integer + Dim col As Integer + + For row = 1 To 9 + For col = 1 To 9 + If Values(row, col) = 0 Then + NextEmptyPosition.row = row + NextEmptyPosition.col = col + Exit Function + End If + Next col + Next row +End Function +Private Sub ResetMap(Map() As Boolean) + Dim i As Integer + For i = 1 To 9 + Map(i) = False + Next i +End Sub + + + + + + diff --git a/Class Modules/Position.cls b/Class Modules/Position.cls new file mode 100644 index 0000000..7482a7b --- /dev/null +++ b/Class Modules/Position.cls @@ -0,0 +1,14 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "Position" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +Option Explicit + +'List of properties +Public row As Integer +Public col As Integer diff --git a/Modules/SudokuSolver.bas b/Modules/SudokuSolver.bas new file mode 100644 index 0000000..3f9bf12 --- /dev/null +++ b/Modules/SudokuSolver.bas @@ -0,0 +1,44 @@ +Attribute VB_Name = "SudokuSolver" +Option Explicit +Public Sub Sudoku() + Dim initialPuzzle As node + Set initialPuzzle = View.Load() + + Dim nodeList As New List + Call nodeList.Add(initialPuzzle) + Dim totalNodes As Integer + totalNodes = 1 + + Dim currentPuzzle As node + Dim solved As Boolean + solved = False + + Dim bestSolution As Integer + bestSolution = initialPuzzle.FilledValueCount + Call View.Render(initialPuzzle, nodeList, totalNodes, bestSolution) + + Do While nodeList.Length > 0 And Not solved + Set currentPuzzle = nodeList.PopNode + Dim position As position + Set position = currentPuzzle.NextEmptyPosition() + + Dim value As Integer + For value = 1 To 9 + Dim newPuzzle As node + Set newPuzzle = currentPuzzle.Clone + Call newPuzzle.SetValue(position.row, position.col, value) + If newPuzzle.IsValidSudoku(position) Then + If newPuzzle.FilledValueCount > bestSolution Then + Call View.Render(newPuzzle, nodeList, totalNodes, bestSolution) + bestSolution = newPuzzle.FilledValueCount + End If + If newPuzzle.IsSolvedSudoku Then + Call View.Render(newPuzzle, nodeList, totalNodes, bestSolution) + solved = True + End If + Call nodeList.Add(newPuzzle) + totalNodes = totalNodes + 1 + End If + Next value + Loop +End Sub diff --git a/Modules/View.bas b/Modules/View.bas new file mode 100644 index 0000000..63af93f --- /dev/null +++ b/Modules/View.bas @@ -0,0 +1,37 @@ +Attribute VB_Name = "View" +Option Explicit +Public Function Load() As node + Set Load = New node + Dim row As Integer + Dim col As Integer + + For row = 1 To 9 + For col = 1 To 9 + Call Load.SetValue(row, col, Cells(row, col)) + Next col + Next row +End Function +Public Sub Render(puzzle As node, nodeList As List, totalNodes As Integer, bestSolution As Integer) + Dim row As Integer + Dim col As Integer + Dim value As Integer + + For row = 1 To 9 + For col = 1 To 9 + value = puzzle.GetValue(row, col) + If value = 0 Then + Cells(row, col + 11) = "" + Else + Cells(row, col + 11) = value + End If + Next col + Next row + + 'Print stats + Cells(11, 1) = "Total number of nodes: " & totalNodes + Cells(12, 1) = "Current number of nodes: " & nodeList.Length + Cells(13, 1) = "% Complete: " & 100 * bestSolution \ (9 * 9) & "%" + DoEvents +End Sub + + diff --git a/README.md b/README.md index 68b8a96..60c1da0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # ExcelSudokuSolver -Sudoku solver using Visual Basic for Applications (VBA) macro that can run in Excel +Sudoku solver using Visual Basic for Applications (VBA) macro that can run in Excel. +Uses a branch & bound depth-first algorithm. +Screenshot below: original Puzzle to the left, solved puzzle to the right. Stats for nerds at the bottom! + +![Alt text](image-1.png) \ No newline at end of file diff --git a/image-1.png b/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a18ed0cf7f4c33a3948bf71812ed6cd1c8261eaa GIT binary patch literal 33364 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 G;Qs|CuB>AK literal 0 HcmV?d00001 diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..a18ed0cf7f4c33a3948bf71812ed6cd1c8261eaa GIT binary patch literal 33364 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 G;Qs|CuB>AK literal 0 HcmV?d00001