65.9K
CodeProject 正在变化。 阅读更多。
Home

数独求解器

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.35/5 (9投票s)

2006 年 5 月 28 日

1分钟阅读

viewsIcon

26062

downloadIcon

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()

              此函数用于查找可能性中的最佳值

© . All rights reserved.