SUDOKU VISUAL BASIC CODE
Public Class SudokuForm Inherits [Link] #Region " Windows Form Designer generated code " Public Sub New() [Link]() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then [Link]() End If End If [Link](disposing) End Sub 'Required by the Windows Form Designer Private components As [Link] 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents Button1 As [Link] Friend WithEvents Button2 As [Link] Friend WithEvents Button3 As [Link] Friend WithEvents Button4 As [Link] Friend WithEvents Button5 As [Link] Friend WithEvents Button6 As [Link] Friend WithEvents Button7 As [Link] Friend WithEvents Button8 As [Link] Friend WithEvents Button9 As [Link] Friend WithEvents Button10 As [Link] Friend WithEvents Button11 As [Link] Friend WithEvents Button12 As [Link] Friend WithEvents Button13 As [Link] Friend WithEvents Button14 As [Link] Friend WithEvents Button15 As [Link] Friend WithEvents Button16 As [Link] Friend WithEvents Button17 As [Link] Friend WithEvents Button18 As [Link] Friend WithEvents Button19 As [Link] Friend WithEvents Button20 As [Link] Friend WithEvents Button21 As [Link] Friend WithEvents Button22 As [Link] Friend WithEvents Button23 As [Link] Friend WithEvents Button24 As [Link] Friend WithEvents Button25 As [Link]
Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend Friend
WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents WithEvents
Button26 As [Link] Button27 As [Link] Button28 As [Link] Button29 As [Link] Button30 As [Link] Button31 As [Link] Button32 As [Link] Button33 As [Link] Button34 As [Link] Button35 As [Link] Button36 As [Link] Button37 As [Link] Button38 As [Link] Button39 As [Link] Button40 As [Link] Button41 As [Link] Button42 As [Link] Button43 As [Link] Button44 As [Link] Button45 As [Link] Button46 As [Link] Button47 As [Link] Button48 As [Link] Button49 As [Link] Button50 As [Link] Button51 As [Link] Button52 As [Link] Button53 As [Link] Button54 As [Link] Button55 As [Link] Button56 As [Link] Button57 As [Link] Button58 As [Link] Button59 As [Link] Button60 As [Link] Button61 As [Link] Button62 As [Link] Button63 As [Link] Button64 As [Link] Button65 As [Link] Button66 As [Link] Button67 As [Link] Button68 As [Link] Button69 As [Link] Button70 As [Link] Button71 As [Link] Button72 As [Link] Button73 As [Link] Button74 As [Link] Button75 As [Link] Button76 As [Link] Button77 As [Link] Button78 As [Link] Button79 As [Link] Button80 As [Link] Button81 As [Link] btnNewGame As [Link] Label1 As [Link]
Friend WithEvents spnDifficulty As [Link] Friend WithEvents lblConfiguring As [Link] Friend WithEvents btnExit As [Link] Friend WithEvents btnShowSolution As [Link] Friend WithEvents lblDone As [Link] <[Link]()> Private Sub InitializeComponent() Me.Button1 = New [Link] Me.Button2 = New [Link] Me.Button3 = New [Link] Me.Button4 = New [Link] Me.Button5 = New [Link] Me.Button6 = New [Link] Me.Button7 = New [Link] Me.Button8 = New [Link] Me.Button9 = New [Link] Me.Button10 = New [Link] Me.Button11 = New [Link] Me.Button12 = New [Link] Me.Button13 = New [Link] Me.Button14 = New [Link] Me.Button15 = New [Link] Me.Button16 = New [Link] Me.Button17 = New [Link] Me.Button18 = New [Link] Me.Button19 = New [Link] Me.Button20 = New [Link] Me.Button21 = New [Link] Me.Button22 = New [Link] Me.Button23 = New [Link] Me.Button24 = New [Link] Me.Button25 = New [Link] Me.Button26 = New [Link] Me.Button27 = New [Link] Me.Button28 = New [Link] Me.Button29 = New [Link] Me.Button30 = New [Link] Me.Button31 = New [Link] Me.Button32 = New [Link] Me.Button33 = New [Link] Me.Button34 = New [Link] Me.Button35 = New [Link] Me.Button36 = New [Link] Me.Button37 = New [Link] Me.Button38 = New [Link] Me.Button39 = New [Link] Me.Button40 = New [Link] Me.Button41 = New [Link] Me.Button42 = New [Link] Me.Button43 = New [Link] Me.Button44 = New [Link] Me.Button45 = New [Link] Me.Button46 = New [Link] Me.Button47 = New [Link] Me.Button48 = New [Link] Me.Button49 = New [Link] Me.Button50 = New [Link] Me.Button51 = New [Link] Me.Button52 = New [Link]
Me.Button53 = New [Link] Me.Button54 = New [Link] Me.Button55 = New [Link] Me.Button56 = New [Link] Me.Button57 = New [Link] Me.Button58 = New [Link] Me.Button59 = New [Link] Me.Button60 = New [Link] Me.Button61 = New [Link] Me.Button62 = New [Link] Me.Button63 = New [Link] Me.Button64 = New [Link] Me.Button65 = New [Link] Me.Button66 = New [Link] Me.Button67 = New [Link] Me.Button68 = New [Link] Me.Button69 = New [Link] Me.Button70 = New [Link] Me.Button71 = New [Link] Me.Button72 = New [Link] Me.Button73 = New [Link] Me.Button74 = New [Link] Me.Button75 = New [Link] Me.Button76 = New [Link] Me.Button77 = New [Link] Me.Button78 = New [Link] Me.Button79 = New [Link] Me.Button80 = New [Link] Me.Button81 = New [Link] [Link] = New [Link] [Link] = New [Link] Me.Label1 = New [Link] [Link] = New [Link] [Link] = New [Link] [Link] = New [Link] [Link] = New [Link] CType([Link], [Link]).BeginInit() [Link]() ' 'Button1 ' [Link] = New [Link](16, 16) [Link] = "Button1" [Link] = New [Link](24, 23) [Link] = 0 ' 'Button2 ' [Link] = New [Link](40, 16) [Link] = "Button2" [Link] = New [Link](24, 23) [Link] = 1 ' 'Button3 ' [Link] = New [Link](64, 16) [Link] = "Button3" [Link] = New [Link](24, 23)
[Link] = 2 ' 'Button4 ' [Link] = New [Link](96, 16) [Link] = "Button4" [Link] = New [Link](24, 23) [Link] = 3 ' 'Button5 ' [Link] = New [Link](120, 16) [Link] = "Button5" [Link] = New [Link](24, 23) [Link] = 4 ' 'Button6 ' [Link] = New [Link](144, 16) [Link] = "Button6" [Link] = New [Link](24, 23) [Link] = 5 ' 'Button7 ' [Link] = New [Link](176, 16) [Link] = "Button7" [Link] = New [Link](24, 23) [Link] = 6 ' 'Button8 ' [Link] = New [Link](200, 16) [Link] = "Button8" [Link] = New [Link](24, 23) [Link] = 7 ' 'Button9 ' [Link] = New [Link](224, 16) [Link] = "Button9" [Link] = New [Link](24, 23) [Link] = 8 ' 'Button10 ' [Link] = New [Link](16, 40) [Link] = "Button10" [Link] = New [Link](24, 23) [Link] = 9 ' 'Button11 ' [Link] = New [Link](40, 40) [Link] = "Button11" [Link] = New [Link](24, 23) [Link] = 10 '
'Button12 ' [Link] = New [Link](64, 40) [Link] = "Button12" [Link] = New [Link](24, 23) [Link] = 11 ' 'Button13 ' [Link] = New [Link](96, 40) [Link] = "Button13" [Link] = New [Link](24, 23) [Link] = 12 ' 'Button14 ' [Link] = New [Link](120, 40) [Link] = "Button14" [Link] = New [Link](24, 23) [Link] = 13 ' 'Button15 ' [Link] = New [Link](144, 40) [Link] = "Button15" [Link] = New [Link](24, 23) [Link] = 14 ' 'Button16 ' [Link] = New [Link](176, 40) [Link] = "Button16" [Link] = New [Link](24, 23) [Link] = 15 ' 'Button17 ' [Link] = New [Link](200, 40) [Link] = "Button17" [Link] = New [Link](24, 23) [Link] = 16 ' 'Button18 ' [Link] = New [Link](224, 40) [Link] = "Button18" [Link] = New [Link](24, 23) [Link] = 17 ' 'Button19 ' [Link] = New [Link](16, 64) [Link] = "Button19" [Link] = New [Link](24, 23) [Link] = 18 ' 'Button20 '
[Link] = New [Link](40, 64) [Link] = "Button20" [Link] = New [Link](24, 23) [Link] = 19 ' 'Button21 ' [Link] = New [Link](64, 64) [Link] = "Button21" [Link] = New [Link](24, 23) [Link] = 20 ' 'Button22 ' [Link] = New [Link](96, 64) [Link] = "Button22" [Link] = New [Link](24, 23) [Link] = 21 ' 'Button23 ' [Link] = New [Link](120, 64) [Link] = "Button23" [Link] = New [Link](24, 23) [Link] = 22 ' 'Button24 ' [Link] = New [Link](144, 64) [Link] = "Button24" [Link] = New [Link](24, 23) [Link] = 23 ' 'Button25 ' [Link] = New [Link](176, 64) [Link] = "Button25" [Link] = New [Link](24, 23) [Link] = 24 ' 'Button26 ' [Link] = New [Link](200, 64) [Link] = "Button26" [Link] = New [Link](24, 23) [Link] = 25 ' 'Button27 ' [Link] = New [Link](224, 64) [Link] = "Button27" [Link] = New [Link](24, 23) [Link] = 26 ' 'Button28 ' [Link] = New [Link](16, 96) [Link] = "Button28"
[Link] = New [Link](24, 23) [Link] = 53 ' 'Button29 ' [Link] = New [Link](40, 96) [Link] = "Button29" [Link] = New [Link](24, 23) [Link] = 52 ' 'Button30 ' [Link] = New [Link](64, 96) [Link] = "Button30" [Link] = New [Link](24, 23) [Link] = 51 ' 'Button31 ' [Link] = New [Link](96, 96) [Link] = "Button31" [Link] = New [Link](24, 23) [Link] = 50 ' 'Button32 ' [Link] = New [Link](120, 96) [Link] = "Button32" [Link] = New [Link](24, 23) [Link] = 49 ' 'Button33 ' [Link] = New [Link](144, 96) [Link] = "Button33" [Link] = New [Link](24, 23) [Link] = 48 ' 'Button34 ' [Link] = New [Link](176, 96) [Link] = "Button34" [Link] = New [Link](24, 23) [Link] = 47 ' 'Button35 ' [Link] = New [Link](200, 96) [Link] = "Button35" [Link] = New [Link](24, 23) [Link] = 46 ' 'Button36 ' [Link] = New [Link](224, 96) [Link] = "Button36" [Link] = New [Link](24, 23) [Link] = 45
' 'Button37 ' [Link] = New [Link](16, 120) [Link] = "Button37" [Link] = New [Link](24, 23) [Link] = 44 ' 'Button38 ' [Link] = New [Link](40, 120) [Link] = "Button38" [Link] = New [Link](24, 23) [Link] = 43 ' 'Button39 ' [Link] = New [Link](64, 120) [Link] = "Button39" [Link] = New [Link](24, 23) [Link] = 42 ' 'Button40 ' [Link] = New [Link](96, 120) [Link] = "Button40" [Link] = New [Link](24, 23) [Link] = 41 ' 'Button41 ' [Link] = New [Link](120, 120) [Link] = "Button41" [Link] = New [Link](24, 23) [Link] = 40 ' 'Button42 ' [Link] = New [Link](144, 120) [Link] = "Button42" [Link] = New [Link](24, 23) [Link] = 39 ' 'Button43 ' [Link] = New [Link](176, 120) [Link] = "Button43" [Link] = New [Link](24, 23) [Link] = 38 ' 'Button44 ' [Link] = New [Link](200, 120) [Link] = "Button44" [Link] = New [Link](24, 23) [Link] = 37 ' 'Button45
' [Link] = New [Link](224, 120) [Link] = "Button45" [Link] = New [Link](24, 23) [Link] = 36 ' 'Button46 ' [Link] = New [Link](16, 144) [Link] = "Button46" [Link] = New [Link](24, 23) [Link] = 35 ' 'Button47 ' [Link] = New [Link](40, 144) [Link] = "Button47" [Link] = New [Link](24, 23) [Link] = 34 ' 'Button48 ' [Link] = New [Link](64, 144) [Link] = "Button48" [Link] = New [Link](24, 23) [Link] = 33 ' 'Button49 ' [Link] = New [Link](96, 144) [Link] = "Button49" [Link] = New [Link](24, 23) [Link] = 32 ' 'Button50 ' [Link] = New [Link](120, 144) [Link] = "Button50" [Link] = New [Link](24, 23) [Link] = 31 ' 'Button51 ' [Link] = New [Link](144, 144) [Link] = "Button51" [Link] = New [Link](24, 23) [Link] = 30 ' 'Button52 ' [Link] = New [Link](176, 144) [Link] = "Button52" [Link] = New [Link](24, 23) [Link] = 29 ' 'Button53 ' [Link] = New [Link](200, 144)
[Link] = "Button53" [Link] = New [Link](24, 23) [Link] = 28 ' 'Button54 ' [Link] = New [Link](224, 144) [Link] = "Button54" [Link] = New [Link](24, 23) [Link] = 27 ' 'Button55 ' [Link] = New [Link](16, 176) [Link] = "Button55" [Link] = New [Link](24, 23) [Link] = 80 ' 'Button56 ' [Link] = New [Link](40, 176) [Link] = "Button56" [Link] = New [Link](24, 23) [Link] = 79 ' 'Button57 ' [Link] = New [Link](64, 176) [Link] = "Button57" [Link] = New [Link](24, 23) [Link] = 78 ' 'Button58 ' [Link] = New [Link](96, 176) [Link] = "Button58" [Link] = New [Link](24, 23) [Link] = 77 ' 'Button59 ' [Link] = New [Link](120, 176) [Link] = "Button59" [Link] = New [Link](24, 23) [Link] = 76 ' 'Button60 ' [Link] = New [Link](144, 176) [Link] = "Button60" [Link] = New [Link](24, 23) [Link] = 75 ' 'Button61 ' [Link] = New [Link](176, 176) [Link] = "Button61" [Link] = New [Link](24, 23)
[Link] = 74 ' 'Button62 ' [Link] = New [Link](200, 176) [Link] = "Button62" [Link] = New [Link](24, 23) [Link] = 73 ' 'Button63 ' [Link] = New [Link](224, 176) [Link] = "Button63" [Link] = New [Link](24, 23) [Link] = 72 ' 'Button64 ' [Link] = New [Link](16, 200) [Link] = "Button64" [Link] = New [Link](24, 23) [Link] = 71 ' 'Button65 ' [Link] = New [Link](40, 200) [Link] = "Button65" [Link] = New [Link](24, 23) [Link] = 70 ' 'Button66 ' [Link] = New [Link](64, 200) [Link] = "Button66" [Link] = New [Link](24, 23) [Link] = 69 ' 'Button67 ' [Link] = New [Link](96, 200) [Link] = "Button67" [Link] = New [Link](24, 23) [Link] = 68 ' 'Button68 ' [Link] = New [Link](120, 200) [Link] = "Button68" [Link] = New [Link](24, 23) [Link] = 67 ' 'Button69 ' [Link] = New [Link](144, 200) [Link] = "Button69" [Link] = New [Link](24, 23) [Link] = 66 '
'Button70 ' [Link] = New [Link](176, 200) [Link] = "Button70" [Link] = New [Link](24, 23) [Link] = 65 ' 'Button71 ' [Link] = New [Link](200, 200) [Link] = "Button71" [Link] = New [Link](24, 23) [Link] = 64 ' 'Button72 ' [Link] = New [Link](224, 200) [Link] = "Button72" [Link] = New [Link](24, 23) [Link] = 63 ' 'Button73 ' [Link] = New [Link](16, 224) [Link] = "Button73" [Link] = New [Link](24, 23) [Link] = 62 ' 'Button74 ' [Link] = New [Link](40, 224) [Link] = "Button74" [Link] = New [Link](24, 23) [Link] = 61 ' 'Button75 ' [Link] = New [Link](64, 224) [Link] = "Button75" [Link] = New [Link](24, 23) [Link] = 60 ' 'Button76 ' [Link] = New [Link](96, 224) [Link] = "Button76" [Link] = New [Link](24, 23) [Link] = 59 ' 'Button77 ' [Link] = New [Link](120, 224) [Link] = "Button77" [Link] = New [Link](24, 23) [Link] = 58 ' 'Button78 '
[Link] = New [Link](144, 224) [Link] = "Button78" [Link] = New [Link](24, 23) [Link] = 57 ' 'Button79 ' [Link] = New [Link](176, 224) [Link] = "Button79" [Link] = New [Link](24, 23) [Link] = 56 ' 'Button80 ' [Link] = New [Link](200, 224) [Link] = "Button80" [Link] = New [Link](24, 23) [Link] = 55 ' 'Button81 ' [Link] = New [Link](224, 224) [Link] = "Button81" [Link] = New [Link](24, 23) [Link] = 54 ' 'btnNewGame ' [Link] = New [Link](16, 296) [Link] = "btnNewGame" [Link] = New [Link](104, 23) [Link] = 81 [Link] = "New Game" ' 'spnDifficulty ' [Link] = New [Link](72, 265) [Link] = New Decimal(New Integer() {3, 0, 0, 0}) [Link] = New Decimal(New Integer() {1, 0, 0, 0}) [Link] = "spnDifficulty" [Link] = New [Link](32, 20) [Link] = 82 [Link] = New Decimal(New Integer() {1, 0, 0, 0}) ' 'Label1 ' [Link] = New [Link](16, 267) [Link] = "Label1" [Link] = New [Link](56, 16) [Link] = 83 [Link] = "Difficulty:" ' 'lblConfiguring ' [Link] = New [Link]("Microsoft Sans Serif", 10.0!, CType(([Link] Or [Link]), [Link]), [Link], CType(0, Byte)) [Link] = New [Link](40, 120)
[Link] = "lblConfiguring" [Link] = New [Link](184, 16) [Link] = 84 [Link] = "Configuring... Please Wait." [Link] = False ' 'btnExit ' [Link] = New [Link](192, 264) [Link] = "btnExit" [Link] = New [Link](56, 23) [Link] = 85 [Link] = "Exit" ' 'btnShowSolution ' [Link] = False [Link] = New [Link](144, 296) [Link] = "btnShowSolution" [Link] = New [Link](104, 24) [Link] = 86 [Link] = "Show Solution" ' 'lblDone ' [Link] = [Link] [Link] = [Link] [Link] = New [Link]("Microsoft Sans Serif", 10.0!, [Link], [Link], CType(0, Byte)) [Link] = New [Link](120, 267) [Link] = "lblDone" [Link] = New [Link](48, 16) [Link] = 87 [Link] = "DONE" [Link] = [Link] [Link] = False ' 'SudokuForm ' [Link] = New [Link](5, 13) [Link] = New [Link](264, 325) [Link]([Link]) [Link]([Link]) [Link]([Link]) [Link]([Link]) [Link](Me.Label1) [Link]([Link]) [Link]([Link]) [Link](Me.Button55) [Link](Me.Button56) [Link](Me.Button57) [Link](Me.Button58) [Link](Me.Button59) [Link](Me.Button60) [Link](Me.Button61) [Link](Me.Button62) [Link](Me.Button63) [Link](Me.Button64)
[Link](Me.Button65) [Link](Me.Button66) [Link](Me.Button67) [Link](Me.Button68) [Link](Me.Button69) [Link](Me.Button70) [Link](Me.Button71) [Link](Me.Button72) [Link](Me.Button73) [Link](Me.Button74) [Link](Me.Button75) [Link](Me.Button76) [Link](Me.Button77) [Link](Me.Button78) [Link](Me.Button79) [Link](Me.Button80) [Link](Me.Button81) [Link](Me.Button28) [Link](Me.Button29) [Link](Me.Button30) [Link](Me.Button31) [Link](Me.Button32) [Link](Me.Button33) [Link](Me.Button34) [Link](Me.Button35) [Link](Me.Button36) [Link](Me.Button37) [Link](Me.Button38) [Link](Me.Button39) [Link](Me.Button40) [Link](Me.Button41) [Link](Me.Button42) [Link](Me.Button43) [Link](Me.Button44) [Link](Me.Button45) [Link](Me.Button46) [Link](Me.Button47) [Link](Me.Button48) [Link](Me.Button49) [Link](Me.Button50) [Link](Me.Button51) [Link](Me.Button52) [Link](Me.Button53) [Link](Me.Button54) [Link](Me.Button27) [Link](Me.Button26) [Link](Me.Button25) [Link](Me.Button24) [Link](Me.Button23) [Link](Me.Button22) [Link](Me.Button21) [Link](Me.Button20) [Link](Me.Button19) [Link](Me.Button18) [Link](Me.Button17) [Link](Me.Button16) [Link](Me.Button15) [Link](Me.Button14)
[Link](Me.Button13) [Link](Me.Button12) [Link](Me.Button11) [Link](Me.Button10) [Link](Me.Button9) [Link](Me.Button8) [Link](Me.Button7) [Link](Me.Button6) [Link](Me.Button5) [Link](Me.Button4) [Link](Me.Button3) [Link](Me.Button2) [Link](Me.Button1) [Link] = "SudokuForm" [Link] = "Sudoku" CType([Link], [Link]).EndInit() [Link](False) End Sub #End Region ' Private attributes Private SolutionShown As Boolean = False Private SudokuGrid(81) As Integer Private SudokuTemp(81) As String Private SudokuSolution(81) As String Friend Buttons(81) As Button Friend WithEvents TmpButton As Button Private CurButtons(81) As Button Private RandNumb As New [Link](CType([Link] Mod [Link], Integer)) Private Sub SudokuForm_Load(ByVal sender As [Link], ByVal e As [Link]) Handles [Link] Dim i, j, k As Integer Dim row, col As Integer CurButtons(1) = Button1 CurButtons(2) = Button2 CurButtons(3) = Button3 CurButtons(4) = Button4 CurButtons(5) = Button5 CurButtons(6) = Button6 CurButtons(7) = Button7 CurButtons(8) = Button8 CurButtons(9) = Button9 CurButtons(10) = Button10 CurButtons(11) = Button11 CurButtons(12) = Button12 CurButtons(13) = Button13 CurButtons(14) = Button14 CurButtons(15) = Button15 CurButtons(16) = Button16 CurButtons(17) = Button17 CurButtons(18) = Button18 CurButtons(19) = Button19 CurButtons(20) = Button20 CurButtons(21) = Button21
CurButtons(22) CurButtons(23) CurButtons(24) CurButtons(25) CurButtons(26) CurButtons(27) CurButtons(28) CurButtons(29) CurButtons(30) CurButtons(31) CurButtons(32) CurButtons(33) CurButtons(34) CurButtons(35) CurButtons(36) CurButtons(37) CurButtons(38) CurButtons(39) CurButtons(40) CurButtons(41) CurButtons(42) CurButtons(43) CurButtons(44) CurButtons(45) CurButtons(46) CurButtons(47) CurButtons(48) CurButtons(49) CurButtons(50) CurButtons(51) CurButtons(52) CurButtons(53) CurButtons(54) CurButtons(55) CurButtons(56) CurButtons(57) CurButtons(58) CurButtons(59) CurButtons(60) CurButtons(61) CurButtons(62) CurButtons(63) CurButtons(64) CurButtons(65) CurButtons(66) CurButtons(67) CurButtons(68) CurButtons(69) CurButtons(70) CurButtons(71) CurButtons(72) CurButtons(73) CurButtons(74) CurButtons(75) CurButtons(76) CurButtons(77) CurButtons(78) CurButtons(79)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Button22 Button23 Button24 Button25 Button26 Button27 Button28 Button29 Button30 Button31 Button32 Button33 Button34 Button35 Button36 Button37 Button38 Button39 Button40 Button41 Button42 Button43 Button44 Button45 Button46 Button47 Button48 Button49 Button50 Button51 Button52 Button53 Button54 Button55 Button56 Button57 Button58 Button59 Button60 Button61 Button62 Button63 Button64 Button65 Button66 Button67 Button68 Button69 Button70 Button71 Button72 Button73 Button74 Button75 Button76 Button77 Button78 Button79
CurButtons(80) = Button80 CurButtons(81) = Button81 For i = 1 To 81 CurButtons(i).Enabled = False CurButtons(i).Visible = False Next i For i = 1 To 81 j = Int((i - 1) / 9) k = ((i - 1) Mod 9) row = Int(j / 3) col = Int(k / 3) TmpButton = New Button [Link] = Trim([Link]) [Link] = "Buttons" + Trim([Link]) [Link] = New Point(16 + (k * 24) + (col * 8), 16 + (j * 24) + (row * 8)) [Link] = New Size(24, 23) [Link](16 + (k * 24) + (col * 8), 16 + (j * 24) + (row * 8), 24, 23) [Link] = True AddHandler [Link], AddressOf Me.SudokuButton_Click Buttons(i) = TmpButton Buttons(i).Visible = True Buttons(i).Update() Buttons(i).Refresh() Next i End Sub ' ---------------------------------------------------------------------' ROUTINE: btnNewGame_Click() ' DESCRIPTION: This routine starts a new game. ' PARAMETERS: sender -- sending object ' e -- event arguments ' RETURN VALUE: None. ' ---------------------------------------------------------------------Private Sub btnNewGame_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link] While Not CreateSudokuGrid() End While [Link] = False [Link] = True [Link] = "Show Solution" SolutionShown = False End Sub ' ---------------------------------------------------------------------' ROUTINE: btnExit_Click() ' DESCRIPTION: This routine exits the application. ' PARAMETERS: sender -- sending object ' e -- event arguments ' RETURN VALUE: None. ' ---------------------------------------------------------------------Private Sub btnExit_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link] Close() End Sub ' ----------------------------------------------------------------------
' ROUTINE: SudokuButton_Click() ' DESCRIPTION: Handles all digital (1-9) value toggle button clicks. ' PARAMETERS: sender -- sending object ' e -- event arguments ' RETURN VALUE: None. ' ---------------------------------------------------------------------'Private Sub SudokuButton_Click(ByVal sender As [Link], ByVal e As [Link]) Private Sub SudokuButton_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link], [Link] Dim i As Integer Dim solFound As Boolean = True Dim CurButton As Button = CType(sender, Button) If Not SolutionShown Then If [Link] = "" Then [Link] = "1" ElseIf [Link] = "9" Then [Link] = "" Else [Link] = Trim(Str(CInt([Link]) + 1)) End If For i = 1 To 81 If CurButtons(i).Text <> SudokuSolution(i) Then solFound = False Exit For End If Next i [Link] = solFound End If End Sub ' ---------------------------------------------------------------------' ROUTINE: btnShowSolution_Click() ' DESCRIPTION: This routine shows the solution. ' PARAMETERS: sender -- sending object ' e -- event arguments ' RETURN VALUE: None. ' ---------------------------------------------------------------------Private Sub btnShowSolution_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link] Dim i As Integer
If SolutionShown Then For i = 1 To 81 CurButtons(i).Text = SudokuTemp(i) Next i [Link] = "Show Solution" Else For i = 1 To 81 SudokuTemp(i) = CurButtons(i).Text CurButtons(i).Text = SudokuSolution(i) Next i [Link] = "Hide Solution" End If SolutionShown = Not SolutionShown End Sub ' ---------------------------------------------------------------------' ROUTINE: CreateSudokuGrid() ' DESCRIPTION: This routine creates a Sudoku grid. ' PARAMETERS: None. ' RETURN VALUE: TRUE if grid is solvable, FALSE if not. ' ---------------------------------------------------------------------Private Function CreateSudokuGrid() As Boolean Dim i, j, k As Integer Dim numRand As Integer Dim CurButton As Button Dim ValIsOK(9) As Boolean Dim valsOK As Integer = 0 [Link] = [Link] [Link] = True For i = 1 To 81 CurButton = CurButtons(i) [Link] = "" [Link] = [Link] [Link] = False SudokuSolution(i) = "" Next i [Link] = True [Link]() For i = 1 To 81 If True Then CurButton = CurButtons(i) valsOK = GetValidVals(i, ValIsOK) If valsOK <= 0 Then Return False End If numRand = [Link](0, valsOK) + 1 k = 0 For j = 1 To 9 If ValIsOK(j) Then k = k + 1 If k = numRand Then Exit For End If End If Next j [Link] = [Link]()
[Link] = [Link] End If Next i [Link] = False For i = 1 To 81 CurButton = CurButtons(i) SudokuSolution(i) = [Link] numRand = [Link](0, [Link] + 1) + 1 If numRand > 1 Then [Link] = "" [Link] = [Link] [Link] = True Else [Link] = False End If [Link] = True Next i [Link] = [Link] Return True End Function ' ---------------------------------------------------------------------' ROUTINE: GetGridVals() ' DESCRIPTION: This routine creates a Sudoku grid. ' PARAMETERS: Location - grid location to get next value for. ' ValidVals - validity checks for 9 possible values. ' RETURN VALUE: Number of valid values indicated in ValidVals. ' ---------------------------------------------------------------------Private Function GetValidVals(ByVal Location As Integer, ByRef ValidVals As Boolean()) As Integer Dim i, j, k As Integer Dim row, col As Integer Dim numStr As String Dim numOK As Boolean Dim retVal As Integer = 0 For i = 1 To 9 numOK = True numStr = [Link]() For j = 1 To 9 k = (Int((Location - 1) / 9) * 9) + j If CurButtons(k).Text = numStr Then numOK = False Exit For End If Next j If numOK Then For j = 1 To 9 k = (((Location - 1) Mod 9) + 1) + ((j - 1) * 9) If CurButtons(k).Text = numStr Then numOK = False Exit For End If Next j End If If numOK Then row = Int(Int((Location - 1) / 9) / 3) col = Int(((Location - 1) Mod 9) / 3)
For j = 1 To 9 k = (((row * 3) + Int((j - 1) / 3)) * 9) + (col * 3) + ((j - 1) Mod 3) + 1 If CurButtons(k).Text = numStr Then numOK = False Exit For End If Next j End If ValidVals(i) = numOK If numOK Then retVal = retVal + 1 End If Next i Return retVal End Function End Class