All pastes #575686 Raw Edit

Mine

public text v1 · immutable
·published 2007-06-19 04:48 UTC
rendered paste body
Public Class Form1
    Dim XO, YO, XI, YI, i, TC, LTC, tmpX, tmpY As Integer
    Dim PassAgain As Boolean = True
    Dim Chk(8) As Boolean
    Dim SudPuz(8, 8) As Integer
    Dim Params(3) As Integer

    Private Sub btnSolve_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSolve.Click
        Input()
        'Do Until PassAgain = False
        PassAgain = False
        'Start counting for each textbox
        For XO = 0 To 8
            For YO = 0 To 8
                'If the textbox is blank
                If SudPuz(XO, YO) = 0 Then
                    PassAgain = True
                    'Prep for evaluating
                    ReDim Chk(8) 'False
                    TC = 0
                    'Start checking every verticle instance
                    For XI = 0 To 8
                        For i = 1 To 9
                            'Can check itself because itself is 0
                            If SudPuz(XI, YO) = i Then
                                'Flag X instance
                                Chk(i - 1) = True
                            End If
                        Next
                    Next
                    'Start checking every horizontal instance
                    For YI = 0 To 8
                        For i = 1 To 9
                            'Can check itself because itself is 0
                            If SudPuz(XO, YI) = i Then
                                'Flag Y instance
                                Chk(i - 1) = True
                            End If
                        Next
                    Next
                    'Start checking for occurances in the same square
                    Dim tmpStr As String = XO.ToString & YO.ToString
                    Select Case tmpStr
                        Case "00", "01", "02", "10", "11", "12", "20", "21", "22"
                            Params(0) = 0
                            Params(1) = 2
                            Params(2) = 0
                            Params(3) = 2
                        Case "03", "04", "05", "13", "14", "15", "23", "24", "25"
                            Params(0) = 0
                            Params(1) = 2
                            Params(2) = 3
                            Params(3) = 5
                        Case "06", "07", "08", "16", "17", "18", "26", "27", "28"
                            Params(0) = 0
                            Params(1) = 2
                            Params(2) = 6
                            Params(3) = 8
                        Case "30", "31", "32", "40", "41", "41", "50", "51", "52"
                            Params(0) = 3
                            Params(1) = 5
                            Params(2) = 0
                            Params(3) = 2
                        Case "33", "34", "35", "43", "44", "45", "53", "54", "55"
                            Params(0) = 3
                            Params(1) = 5
                            Params(2) = 3
                            Params(3) = 5
                        Case "36", "37", "38", "46", "47", "48", "56", "57", "58"
                            Params(0) = 3
                            Params(1) = 5
                            Params(2) = 6
                            Params(3) = 8
                        Case "60", "61", "62", "70", "71", "72", "80", "81", "82"
                            Params(0) = 6
                            Params(1) = 8
                            Params(2) = 0
                            Params(3) = 2
                        Case "63", "64", "65", "73", "74", "75", "83", "84", "85"
                            Params(0) = 6
                            Params(1) = 8
                            Params(2) = 3
                            Params(3) = 5
                        Case "66", "67", "68", "76", "77", "78", "86", "87", "88"
                            Params(0) = 6
                            Params(1) = 8
                            Params(2) = 6
                            Params(3) = 8
                    End Select
                    WithinGroup()
                    'Count occurances
                    TC = 0
                    For i = 0 To 8
                        If Chk(i) = True Then
                            TC += 1
                        Else
                            'Catch last false occurance
                            LTC = i + 1
                        End If
                    Next
                    'Check to see if value is definite
                    'MsgBox(Chk(0).ToString & Chk(1).ToString & Chk(2).ToString & Chk(3).ToString & Chk(4).ToString & Chk(5).ToString & Chk(6).ToString & Chk(7).ToString & Chk(8).ToString)

                    If TC = 8 Then
                        SudPuz(XO, YO) = LTC
                    End If
                End If
            Next
        Next
        'Loop
        Output()
    End Sub
    Private Sub Input()
        SudPuz(0, 0) = Val(txt1.Text)
        SudPuz(0, 1) = Val(txt2.Text)
        SudPuz(0, 2) = Val(txt3.Text)
        SudPuz(0, 3) = Val(txt4.Text)
        SudPuz(0, 4) = Val(txt5.Text)
        SudPuz(0, 5) = Val(txt6.Text)
        SudPuz(0, 6) = Val(txt7.Text)
        SudPuz(0, 7) = Val(txt8.Text)
        SudPuz(0, 8) = Val(txt9.Text)
        SudPuz(1, 0) = Val(txt10.Text)
        SudPuz(1, 1) = Val(txt11.Text)
        SudPuz(1, 2) = Val(txt12.Text)
        SudPuz(1, 3) = Val(txt13.Text)
        SudPuz(1, 4) = Val(txt14.Text)
        SudPuz(1, 5) = Val(txt15.Text)
        SudPuz(1, 6) = Val(txt16.Text)
        SudPuz(1, 7) = Val(txt17.Text)
        SudPuz(1, 8) = Val(txt18.Text)
        SudPuz(2, 0) = Val(txt19.Text)
        SudPuz(2, 1) = Val(txt20.Text)
        SudPuz(2, 2) = Val(txt21.Text)
        SudPuz(2, 3) = Val(txt22.Text)
        SudPuz(2, 4) = Val(txt23.Text)
        SudPuz(2, 5) = Val(txt24.Text)
        SudPuz(2, 6) = Val(txt25.Text)
        SudPuz(2, 7) = Val(txt26.Text)
        SudPuz(2, 8) = Val(txt27.Text)
        SudPuz(3, 0) = Val(txt28.Text)
        SudPuz(3, 1) = Val(txt29.Text)
        SudPuz(3, 2) = Val(txt30.Text)
        SudPuz(3, 3) = Val(txt31.Text)
        SudPuz(3, 4) = Val(txt32.Text)
        SudPuz(3, 5) = Val(txt33.Text)
        SudPuz(3, 6) = Val(txt34.Text)
        SudPuz(3, 7) = Val(txt35.Text)
        SudPuz(3, 8) = Val(txt36.Text)
        SudPuz(4, 0) = Val(txt37.Text)
        SudPuz(4, 1) = Val(txt38.Text)
        SudPuz(4, 2) = Val(txt39.Text)
        SudPuz(4, 3) = Val(txt40.Text)
        SudPuz(4, 4) = Val(txt41.Text)
        SudPuz(4, 5) = Val(txt42.Text)
        SudPuz(4, 6) = Val(txt43.Text)
        SudPuz(4, 7) = Val(txt44.Text)
        SudPuz(4, 8) = Val(txt45.Text)
        SudPuz(5, 0) = Val(txt46.Text)
        SudPuz(5, 1) = Val(txt47.Text)
        SudPuz(5, 2) = Val(txt48.Text)
        SudPuz(5, 3) = Val(txt49.Text)
        SudPuz(5, 4) = Val(txt50.Text)
        SudPuz(5, 5) = Val(txt51.Text)
        SudPuz(5, 6) = Val(txt52.Text)
        SudPuz(5, 7) = Val(txt53.Text)
        SudPuz(5, 8) = Val(txt54.Text)
        SudPuz(6, 0) = Val(txt55.Text)
        SudPuz(6, 1) = Val(txt56.Text)
        SudPuz(6, 2) = Val(txt57.Text)
        SudPuz(6, 3) = Val(txt58.Text)
        SudPuz(6, 4) = Val(txt59.Text)
        SudPuz(6, 5) = Val(txt60.Text)
        SudPuz(6, 6) = Val(txt61.Text)
        SudPuz(6, 7) = Val(txt62.Text)
        SudPuz(6, 8) = Val(txt63.Text)
        SudPuz(7, 0) = Val(txt64.Text)
        SudPuz(7, 1) = Val(txt65.Text)
        SudPuz(7, 2) = Val(txt66.Text)
        SudPuz(7, 3) = Val(txt67.Text)
        SudPuz(7, 4) = Val(txt68.Text)
        SudPuz(7, 5) = Val(txt69.Text)
        SudPuz(7, 6) = Val(txt70.Text)
        SudPuz(7, 7) = Val(txt71.Text)
        SudPuz(7, 8) = Val(txt72.Text)
        SudPuz(8, 0) = Val(txt73.Text)
        SudPuz(8, 1) = Val(txt74.Text)
        SudPuz(8, 2) = Val(txt75.Text)
        SudPuz(8, 3) = Val(txt76.Text)
        SudPuz(8, 4) = Val(txt77.Text)
        SudPuz(8, 5) = Val(txt78.Text)
        SudPuz(8, 6) = Val(txt79.Text)
        SudPuz(8, 7) = Val(txt80.Text)
        SudPuz(8, 8) = Val(txt81.Text)
    End Sub

    Private Sub Output()
        txt1.Text = SudPuz(0, 0)
        txt2.Text = SudPuz(0, 1)
        txt3.Text = SudPuz(0, 2)
        txt4.Text = SudPuz(0, 3)
        txt5.Text = SudPuz(0, 4)
        txt6.Text = SudPuz(0, 5)
        txt7.Text = SudPuz(0, 6)
        txt8.Text = SudPuz(0, 7)
        txt9.Text = SudPuz(0, 8)
        txt10.Text = SudPuz(1, 0)
        txt11.Text = SudPuz(1, 1)
        txt12.Text = SudPuz(1, 2)
        txt13.Text = SudPuz(1, 3)
        txt14.Text = SudPuz(1, 4)
        txt15.Text = SudPuz(1, 5)
        txt16.Text = SudPuz(1, 6)
        txt17.Text = SudPuz(1, 7)
        txt18.Text = SudPuz(1, 8)
        txt19.Text = SudPuz(2, 0)
        txt20.Text = SudPuz(2, 1)
        txt21.Text = SudPuz(2, 2)
        txt22.Text = SudPuz(2, 3)
        txt23.Text = SudPuz(2, 4)
        txt24.Text = SudPuz(2, 5)
        txt25.Text = SudPuz(2, 6)
        txt26.Text = SudPuz(2, 7)
        txt27.Text = SudPuz(2, 8)
        txt28.Text = SudPuz(3, 0)
        txt29.Text = SudPuz(3, 1)
        txt30.Text = SudPuz(3, 2)
        txt31.Text = SudPuz(3, 3)
        txt32.Text = SudPuz(3, 4)
        txt33.Text = SudPuz(3, 5)
        txt34.Text = SudPuz(3, 6)
        txt35.Text = SudPuz(3, 7)
        txt36.Text = SudPuz(3, 8)
        txt37.Text = SudPuz(4, 0)
        txt38.Text = SudPuz(4, 1)
        txt39.Text = SudPuz(4, 2)
        txt40.Text = SudPuz(4, 3)
        txt41.Text = SudPuz(4, 4)
        txt42.Text = SudPuz(4, 5)
        txt43.Text = SudPuz(4, 6)
        txt44.Text = SudPuz(4, 7)
        txt45.Text = SudPuz(4, 8)
        txt46.Text = SudPuz(5, 0)
        txt47.Text = SudPuz(5, 1)
        txt48.Text = SudPuz(5, 2)
        txt49.Text = SudPuz(5, 3)
        txt50.Text = SudPuz(5, 4)
        txt51.Text = SudPuz(5, 5)
        txt52.Text = SudPuz(5, 6)
        txt53.Text = SudPuz(5, 7)
        txt54.Text = SudPuz(5, 8)
        txt55.Text = SudPuz(6, 0)
        txt56.Text = SudPuz(6, 1)
        txt57.Text = SudPuz(6, 2)
        txt58.Text = SudPuz(6, 3)
        txt59.Text = SudPuz(6, 4)
        txt60.Text = SudPuz(6, 5)
        txt61.Text = SudPuz(6, 6)
        txt62.Text = SudPuz(6, 7)
        txt63.Text = SudPuz(6, 8)
        txt64.Text = SudPuz(7, 0)
        txt65.Text = SudPuz(7, 1)
        txt66.Text = SudPuz(7, 2)
        txt67.Text = SudPuz(7, 3)
        txt68.Text = SudPuz(7, 4)
        txt69.Text = SudPuz(7, 5)
        txt70.Text = SudPuz(7, 6)
        txt71.Text = SudPuz(7, 7)
        txt72.Text = SudPuz(7, 8)
        txt73.Text = SudPuz(8, 0)
        txt74.Text = SudPuz(8, 1)
        txt75.Text = SudPuz(8, 2)
        txt76.Text = SudPuz(8, 3)
        txt77.Text = SudPuz(8, 4)
        txt78.Text = SudPuz(8, 5)
        txt79.Text = SudPuz(8, 6)
        txt80.Text = SudPuz(8, 7)
        txt81.Text = SudPuz(8, 8)
    End Sub

    Private Sub WithinGroup()
        For tmpX = Params(0) To Params(1)
            For tmpY = Params(2) To Params(3)
                For i = 1 To 9
                    'Can check itself because itself is 0
                    If SudPuz(tmpX, tmpY) = i Then
                        'Flag Y instance
                        Chk(i - 1) = True
                    End If
                Next
            Next
        Next
    End Sub
End Class