数独求解器






1.35/5 (9投票s)
2006 年 5 月 28 日
1分钟阅读

26062

783
源代码解决了数独(中等难度)。
引言
这是用来求解数独谜题的源代码,最高可达中等难度。
描述
这个谜题通过两个主要函数来解决
1. findpossibilities()
此函数用于查找单个单元格中可能存在的所有值的可能性。
这是查找可能性的主要部分
For i = 0 To 8
For j = 0 To 8
If B(i, j) = 0 Then
'检查行
For l = 0 To 8
If B(i, l) <> 0 Then
temp = B(i, l) - 1
mem(i, j, temp) = 0
End If
Next l
'检查列
For l = 0 To 8
If B(l, j) <> 0 Then
temp = B(l, j) - 1
mem(i, j, temp) = 0
End If
Next l
'检查3 x 3 单元格
t1 = Int(i / 3)
t2 = Int(j / 3)
t1 = t1 * 3
t2 = t2 * 3
For l = t1 To (2 + t1)
For m = (0 + t2) To (2 + t2)
If B(l, m) <> 0 Then
temp = B(l, m) - 1
mem(i, j, temp) = 0
End If
Next m
Next l
Else
For l = 0 To 8
mem(i, j, l) = 0
Next l
End If
Next j
Next i
2. getmax()
此函数用于查找可能性中的最佳值