home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Tool Box
/
SIMS_2.iso
/
vb_code1
/
knight
/
knight.frm
< prev
next >
Wrap
Text File
|
1993-02-09
|
57KB
|
1,888 lines
VERSION 2.00
Begin Form Knight
BackColor = &H00FFFFFF&
BorderStyle = 1 'Fixed Single
Caption = "Knight's Tour"
Height = 5640
Icon = KNIGHT.FRX:0000
Left = 1335
LinkTopic = "Form1"
MaxButton = 0 'False
ScaleHeight = 4950
ScaleWidth = 5910
Top = 1155
Width = 6030
Begin Timer StatsTimer
Enabled = 0 'False
Interval = 1000
Left = 7920
Top = 120
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 0
Left = 7200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 70
Tag = "2"
Top = 120
Visible = 0 'False
Width = 495
End
Begin CheckBox StopBox
BackColor = &H00008080&
Caption = "Any Solution"
Height = 255
Left = 4320
TabIndex = 68
TabStop = 0 'False
Tag = "0"
Top = 3480
Width = 1455
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 64
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 65
Tag = "2"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 63
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 64
Tag = "3"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 62
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 63
Tag = "4"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 61
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 62
Tag = "4"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 60
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 61
Tag = "4"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 59
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 60
Tag = "4"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 58
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 59
Tag = "3"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 57
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 58
Tag = "2"
Top = 4080
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 56
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 57
Tag = "3"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 55
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 56
Tag = "4"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 54
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 55
Tag = "6"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 53
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 54
Tag = "6"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 52
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 53
Tag = "6"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 51
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 52
Tag = "6"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 50
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 51
Tag = "4"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 49
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 50
Tag = "3"
Top = 3600
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 48
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 49
Tag = "4"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 47
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 48
Tag = "6"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 46
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 47
Tag = "8"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 45
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 46
Tag = "8"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 44
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 45
Tag = "8"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 43
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 44
Tag = "8"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 42
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 43
Tag = "6"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 41
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 42
Tag = "4"
Top = 3120
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 40
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 41
Tag = "4"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 39
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 40
Tag = "6"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 38
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 39
Tag = "8"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 37
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 38
Tag = "8"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 36
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 37
Tag = "8"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 35
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 36
Tag = "8"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 34
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 35
Tag = "6"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 33
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 34
Tag = "4"
Top = 2640
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 32
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 33
Tag = "4"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 31
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 32
Tag = "6"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 30
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 31
Tag = "8"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 29
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 30
Tag = "8"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 28
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 29
Tag = "8"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 27
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 28
Tag = "8"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 26
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 27
Tag = "6"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 25
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 26
Tag = "4"
Top = 2160
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 24
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 25
Tag = "4"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 23
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 24
Tag = "6"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 22
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 23
Tag = "8"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 21
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 22
Tag = "8"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 20
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 21
Tag = "8"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 19
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 20
Tag = "8"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 18
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 19
Tag = "6"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 17
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 18
Tag = "4"
Top = 1680
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 16
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 17
Tag = "3"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 15
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 16
Tag = "4"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 14
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 15
Tag = "6"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 13
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 14
Tag = "6"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 12
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 13
Tag = "6"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 11
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 12
Tag = "6"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 10
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 11
Tag = "4"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 9
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 10
Tag = "3"
Top = 1200
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 8
Left = 3600
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 9
Tag = "2"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 7
Left = 3120
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 8
Tag = "3"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 6
Left = 2640
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 7
Tag = "4"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 5
Left = 2160
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 6
Tag = "4"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 4
Left = 1680
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 5
Tag = "4"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 3
Left = 1200
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 4
Tag = "4"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00808080&
Height = 495
Index = 2
Left = 720
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 3
Tag = "3"
Top = 720
Width = 495
End
Begin PictureBox Board
BackColor = &H00C0C0C0&
Height = 495
Index = 1
Left = 240
ScaleHeight = 465
ScaleWidth = 465
TabIndex = 2
Tag = "2"
Top = 720
Width = 495
End
Begin CommandButton Button
Enabled = 0 'False
Height = 495
Left = 4440
TabIndex = 1
Top = 3960
Width = 1215
End
Begin Label Label4
BackColor = &H00008080&
Caption = "(v1.2)"
Height = 255
Left = 4800
TabIndex = 69
Top = 240
Width = 615
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 64
Left = 9840
Picture = KNIGHT.FRX:0302
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 63
Left = 9360
Picture = KNIGHT.FRX:0604
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 62
Left = 8880
Picture = KNIGHT.FRX:0906
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 61
Left = 8400
Picture = KNIGHT.FRX:0C08
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 60
Left = 7920
Picture = KNIGHT.FRX:0F0A
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 59
Left = 7440
Picture = KNIGHT.FRX:120C
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 58
Left = 6960
Picture = KNIGHT.FRX:150E
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 57
Left = 6480
Picture = KNIGHT.FRX:1810
Top = 4080
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 56
Left = 9840
Picture = KNIGHT.FRX:1B12
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 55
Left = 9360
Picture = KNIGHT.FRX:1E14
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 54
Left = 8880
Picture = KNIGHT.FRX:2116
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 53
Left = 8400
Picture = KNIGHT.FRX:2418
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 52
Left = 7920
Picture = KNIGHT.FRX:271A
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 51
Left = 7440
Picture = KNIGHT.FRX:2A1C
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 50
Left = 6960
Picture = KNIGHT.FRX:2D1E
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 49
Left = 6480
Picture = KNIGHT.FRX:3020
Top = 3600
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 48
Left = 9840
Picture = KNIGHT.FRX:3322
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 47
Left = 9360
Picture = KNIGHT.FRX:3624
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 46
Left = 8880
Picture = KNIGHT.FRX:3926
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 45
Left = 8400
Picture = KNIGHT.FRX:3C28
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 44
Left = 7920
Picture = KNIGHT.FRX:3F2A
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 43
Left = 7440
Picture = KNIGHT.FRX:422C
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 42
Left = 6960
Picture = KNIGHT.FRX:452E
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 41
Left = 6480
Picture = KNIGHT.FRX:4830
Top = 3120
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 40
Left = 9840
Picture = KNIGHT.FRX:4B32
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 39
Left = 9360
Picture = KNIGHT.FRX:4E34
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 38
Left = 8880
Picture = KNIGHT.FRX:5136
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 37
Left = 8400
Picture = KNIGHT.FRX:5438
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 36
Left = 7920
Picture = KNIGHT.FRX:573A
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 35
Left = 7440
Picture = KNIGHT.FRX:5A3C
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 34
Left = 6960
Picture = KNIGHT.FRX:5D3E
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 33
Left = 6480
Picture = KNIGHT.FRX:6040
Top = 2640
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 32
Left = 9840
Picture = KNIGHT.FRX:6342
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 31
Left = 9360
Picture = KNIGHT.FRX:6644
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 30
Left = 8880
Picture = KNIGHT.FRX:6946
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 29
Left = 8400
Picture = KNIGHT.FRX:6C48
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 28
Left = 7920
Picture = KNIGHT.FRX:6F4A
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 27
Left = 7440
Picture = KNIGHT.FRX:724C
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 26
Left = 6960
Picture = KNIGHT.FRX:754E
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 25
Left = 6480
Picture = KNIGHT.FRX:7850
Top = 2160
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 24
Left = 9840
Picture = KNIGHT.FRX:7B52
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 23
Left = 9360
Picture = KNIGHT.FRX:7E54
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 22
Left = 8880
Picture = KNIGHT.FRX:8156
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 21
Left = 8400
Picture = KNIGHT.FRX:8458
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 20
Left = 7920
Picture = KNIGHT.FRX:875A
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 19
Left = 7440
Picture = KNIGHT.FRX:8A5C
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 18
Left = 6960
Picture = KNIGHT.FRX:8D5E
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 17
Left = 6480
Picture = KNIGHT.FRX:9060
Top = 1680
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 16
Left = 9840
Picture = KNIGHT.FRX:9362
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 15
Left = 9360
Picture = KNIGHT.FRX:9664
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 14
Left = 8880
Picture = KNIGHT.FRX:9966
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 13
Left = 8400
Picture = KNIGHT.FRX:9C68
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 12
Left = 7920
Picture = KNIGHT.FRX:9F6A
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 11
Left = 7440
Picture = KNIGHT.FRX:A26C
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 10
Left = 6960
Picture = KNIGHT.FRX:A56E
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 9
Left = 6480
Picture = KNIGHT.FRX:A870
Top = 1200
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 8
Left = 9840
Picture = KNIGHT.FRX:AB72
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 7
Left = 9360
Picture = KNIGHT.FRX:AE74
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 6
Left = 8880
Picture = KNIGHT.FRX:B176
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 5
Left = 8400
Picture = KNIGHT.FRX:B478
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 4
Left = 7920
Picture = KNIGHT.FRX:B77A
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 3
Left = 7440
Picture = KNIGHT.FRX:BA7C
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 2
Left = 6960
Picture = KNIGHT.FRX:BD7E
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 1
Left = 6480
Picture = KNIGHT.FRX:C080
Top = 720
Visible = 0 'False
Width = 480
End
Begin Image ImgKnight
Enabled = 0 'False
Height = 480
Index = 0
Left = 6480
Picture = KNIGHT.FRX:C382
Top = 120
Visible = 0 'False
Width = 480
End
Begin Label Label2
BackColor = &H00008080&
Caption = "By: Michael Sheldrake"
Height = 255
Left = 240
TabIndex = 67
Top = 4680
Width = 2175
End
Begin Label Label3
BackColor = &H00008080&
Caption = "Click on Any Square to Begin the Knight's Tour"
Enabled = 0 'False
ForeColor = &H00000000&
Height = 2535
Left = 4440
TabIndex = 66
Top = 840
Width = 1335
End
Begin Label Label1
Alignment = 2 'Center
BackColor = &H00008080&
BorderStyle = 1 'Fixed Single
Caption = "Knight's Tour "
Enabled = 0 'False
FontBold = -1 'True
FontItalic = 0 'False
FontName = "Times New Roman"
FontSize = 24
FontStrikethru = 0 'False
FontUnderline = 0 'False
ForeColor = &H00000000&
Height = 5055
Left = 0
TabIndex = 0
Top = 0
Width = 6135
End
Begin Menu mnuFile
Caption = "&File"
Begin Menu mnuFLoad
Caption = "&Load Board"
End
Begin Menu mnuFSave
Caption = "&Save Board"
End
Begin Menu mnuFSep
Caption = "-"
End
Begin Menu mnuFExit
Caption = "E&xit"
End
End
End
DefInt A-Z
Dim Mv, MvX, LoMv, Walks#, Prunes#, Finds#, Matrix(10, 64)
Dim Drc(2, 8), Quad(8), State, DeltaTime!, StartTime!
Sub Board_Click (Index As Integer)
If Index <> 0 Then ' ***** Clear Matrix & Board *****
If State = 1 Then ' Another iteration active??
State = 2 ' Yes, tell him to quit
Do ' Wait for Other iteration to Quit
DoEvents
Loop Until State = 0
End If
For i = 1 To 64
Board(i).Picture = LoadPicture("")
Matrix(1, i) = 0
Matrix(2, i) = 0
For j = 3 To 10
Matrix(j, i) = Abs(Matrix(j, i))
Next j
Next i
Mv = 1
LoMv = 64
MvX = Index
Matrix(1, MvX) = Mv
Walks# = 1
Prunes# = 0
Finds# = 0
DeltaTime! = 0
State = 1
End If
If State = 1 Then ' ***** Find Solution *****
For i = 1 To 64
Board(i).Enabled = False
Next i
Button.Caption = "Stop"
Button.Enabled = True
StatsTimer.Enabled = True
StartTime! = Timer
Call StatsTimer_Timer
Do Until Mv >= 64 Or State <> 1 ' Solution is Found <or> Button is Clicked
Found = 0
fx = 3
Do While fx <= 10 And Found = 0 ' More Links??
fl = Matrix(fx, MvX) ' Get Forward Link
If fl > 0 Then ' Is Link Seen/Used??
Matrix(fx, MvX) = -1 * fl ' Mark Link as Seen
If Matrix(1, fl) = 0 Then ' Is Forward Link Free??
Found = 1 ' Found a Move
ffx = 3
Do While ffx <= 10 And Found = 1 ' Look for Dead Branches to Prune
ffl = Matrix(ffx, fl)
If ffl > 0 Then
If Matrix(1, ffl) = 0 Then
free = 0
fffx = 3
Do While fffx <= 10 And free < 2
fffl = Matrix(fffx, ffl)
If fffl > 0 Then
If Matrix(1, fffl) = 0 Then
free = free + 1
End If
End If
fffx = fffx + 1
Loop
If free < 2 And Mv < 62 Then ' Need to Prune this branch??
Found = 0
Prunes# = Prunes# + 1
End If
End If
End If
ffx = ffx + 1
Loop
End If
End If
If LoMv > Mv Then
LoMv = Mv
End If
If Found = 1 Then ' Walk Forward??
Board(MvX).Picture = ImgKnight(Mv).Picture
Mv = Mv + 1 ' Bump mv(Branch Level)
Matrix(1, fl) = Mv ' Set mv Number
Matrix(2, fl) = MvX ' Set BackLink
MvX = fl ' Forward Link is New mv
If Mv >= 64 Then
Finds# = Finds# + 1
End If
End If
fx = fx + 1 ' Bump Link
Loop
Walks# = Walks# + 1
If Mv >= 64 Then
Solution = 64
For i = 3 To 10
If Matrix(1, Matrix(i, MvX)) = 1 Then
Solution = 0
End If
Next i
If StopBox.Value = 0 Or (StopBox.Value = 1 And Solution = 0) Then
StatsTimer.Enabled = False
Call StatsTimer_Timer
Board(MvX).Picture = ImgKnight(Solution).Picture
For i = 1 To 64
Board(i).Enabled = True
Next i
LoMv = 64: State = 0
Button.Caption = "Find Next"
End If
Found = 0
End If
Do
DoEvents ' Let Others use CPU!!!
Loop Until State <> 0 ' Wait for Find Next button click
If StatsTimer.Enabled = False Then
StatsTimer.Enabled = True
StartTime! = Timer
End If
If Found = 0 Then ' Walk back??
Board(MvX).Picture = LoadPicture("")
Matrix(1, MvX) = 0 ' Clear mv Number
For i = 3 To 10
Matrix(i, MvX) = Abs(Matrix(i, MvX)) ' Reset Link Flags
Next i
MvX = Matrix(2, MvX) ' Backup a Branch
Mv = Mv - 1
End If
Loop ' find next move
End If
StatsTimer.Enabled = False
Call StatsTimer_Timer
For i = 1 To 64
Board(i).Enabled = True
Next i
Button.Caption = "Resume"
State = 0
End Sub
Sub Button_Click ()
If Button.Caption = "Stop" Then
State = 2
ElseIf Button.Caption = "Resume" Then
State = 1
Call Board_Click(0)
ElseIf Button.Caption = "Find Next" Then
Button.Caption = "Stop"
For i = 1 To 64
Board(i).Enabled = False
Next i
State = 1
End If
End Sub
Sub Form_Load ()
Screen.MousePointer = 11
Knight.Top = (Screen.Height - Knight.Height) / 2
Knight.Left = (Screen.Width - Knight.Width) / 2
Knight.Show
'************************* Build Matrix ********************************
' Directions Lower Numbers First ' Directions & Quadrants (purely arbitrary)
' Delta Row Delta Col ' q1 | 1 | | 2 | q2
Drc(1, 1) = -2: Drc(2, 1) = -1 ' -------------------
Drc(1, 2) = -2: Drc(2, 2) = 1 ' 8 | | | | 3
Drc(1, 3) = -1: Drc(2, 3) = 2 ' -------------------
Drc(1, 4) = 1: Drc(2, 4) = 2 ' | | K | |
Drc(1, 5) = 2: Drc(2, 5) = 1 ' -------------------
Drc(1, 6) = 2: Drc(2, 6) = -1 ' 7 | | | | 4
Drc(1, 7) = 1: Drc(2, 7) = -2 ' -------------------
Drc(1, 8) = -1: Drc(2, 8) = -2 ' q4 | 6 | | 5 | q3
For sq = 1 To 64
MvX = 3
r = Fix((sq - 1) / 8) + 1
c = ((sq - 1) Mod 8) + 1
' Corner Weighting based on Quadrant
If r <= 4 And c <= 4 Then
Quad(1) = 1: Quad(2) = 8: Quad(3) = 2: Quad(4) = 7: Quad(5) = 6: Quad(6) = 3: Quad(7) = 5: Quad(8) = 4
ElseIf r <= 4 And c > 4 Then
Quad(1) = 3: Quad(2) = 2: Quad(3) = 4: Quad(4) = 1: Quad(5) = 8: Quad(6) = 5: Quad(7) = 7: Quad(8) = 6
ElseIf r > 4 And c > 4 Then
Quad(1) = 5: Quad(2) = 4: Quad(3) = 6: Quad(4) = 3: Quad(5) = 2: Quad(6) = 7: Quad(7) = 1: Quad(8) = 8
Else
Quad(1) = 7: Quad(2) = 6: Quad(3) = 8: Quad(4) = 5: Quad(5) = 4: Quad(6) = 1: Quad(7) = 3: Quad(8) = 2
End If
' Build Matrix of valid Knight mvs using Corner Weighting.
For d = 1 To 8 ' Max possible eight mv from any starting location.
New_R = r + Drc(1, Quad(d))
New_C = c + Drc(2, Quad(d))
If New_R > 0 And New_R < 9 Then
If New_C > 0 And New_C < 9 Then
Matrix(MvX, sq) = (New_R - 1) * 8 + New_C
MvX = MvX + 1
End If
End If
Next d
Do ' Weight the squares with the least links first
a = 3
b = 4
Found = 0
Do While b <= 10
If Matrix(b, sq) > 0 Then
If Board(Matrix(a, sq)).Tag > Board(Matrix(b, sq)).Tag Then
Found = 1
c = Matrix(a, sq)
Matrix(a, sq) = Matrix(b, sq)
Matrix(b, sq) = c
End If
End If
a = a + 1
b = a + 1
Loop
Loop While Found = 1
Next sq
Screen.MousePointer = 1
State = 0
End Sub
Sub mnuFExit_Click ()
End
End Sub
Sub mnuFLoad_Click ()
State = 2
DoEvents
Filter1$ = "Knight Files" + Chr$(0) + "*.brd" + Chr$(0)
Filter2$ = "Text Files" + Chr$(0) + "*.*" + Chr$(0)
Filter$ = Filter1$ + Filter2$ + Chr$(0)
Index% = 1
Flags& = OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY Or OFN_PATHMUSTEXIST
IDir$ = CurDir$ + Chr$(0)
Title$ = "Load Board Position" + Chr$(0)
File$ = OpenFile$(Knight, Status%, FError&, Filter$, IDir$, Title$, Index%, Flags&)
If FError& <> 0 Then
Msg$ = CmdError$(x&)
MsgBox Msg$, 32, "Open"
ElseIf File$ <> "" Then
CV = 0
Open File$ For Input As 1
Input #1, Mv, MvX, LoMv, Walks#, Prunes#, Finds#, CV, DeltaTime!
For i = 1 To 64
Input #1, Matrix(1, i), Matrix(2, i), Matrix(3, i), Matrix(4, i), Matrix(5, i), Matrix(6, i), Matrix(7, i), Matrix(8, i), Matrix(9, i), Matrix(10, i)
If Matrix(1, i) <= 0 Then
Board(i).Picture = LoadPicture("")
Else
Board(i).Picture = ImgKnight(Matrix(1, i)).Picture
End If
Next i
Close #1
StopBox.Value = CV
StartTime! = 0
Call StatsTimer_Timer
Button.Visible = True
Button.Caption = "Resume"
End If
End Sub
Sub mnuFSave_Click ()
State = 2
DoEvents
For i = 1 To 64
If Matrix(1, i) = 1 Then FileN = i
Next i
Filter1$ = "Knight Files" + Chr$(0) + "*.brd" + Chr$(0)
Filter2$ = "All Files" + Chr$(0) + "*.*" + Chr$(0) + Chr$(0)
Filter$ = Filter1$ + Filter2$ + Chr$(0)
IDir$ = CurDir$ + Chr$(0)
FileMask$ = "Knight" & Format$(FileN, "00") & ".brd"
Title$ = "Save Board Position" + Chr$(0)
Index% = 1
Flags& = OFN_HIDEREADONLY Or OFN_PATHMUSTEXIST
File$ = SaveFile$(Knight, Status%, FError&, Filter$, IDir$, FileMask$, Index%, Title$, Flags&)
If FError& <> 0 Then
Msg$ = CmdError$(x&)
MsgBox Msg$, 32, "Save Error"
ElseIf File$ <> "" Then
CV = StopBox.Value
Open File$ For Output As 1
Write #1, Mv, MvX, LoMv, Walks#, Prunes#, Finds#, CV, DeltaTime!
For i = 1 To 64
Write #1, Matrix(1, i), Matrix(2, i), Matrix(3, i), Matrix(4, i), Matrix(5, i), Matrix(6, i), Matrix(7, i), Matrix(8, i), Matrix(9, i), Matrix(10, i)
Next i
Close #1
MsgBox "Board Position Saved", 64, "Knight"
End If
End Sub
Sub StatsTimer_Timer ()
If StartTime! > 0 Then
EndTime! = Timer
DeltaTime! = DeltaTime! + (EndTime! - StartTime!)
StartTime! = EndTime!
End If
Stats$ = "Move: " & Format$(Mv, "00") & Chr$(13)
Stats$ = Stats$ & "Low: " & Format$(LoMv, "00") & Chr$(13)
Stats$ = Stats$ & "Seconds: " & Format$(DeltaTime!, "#####0.00") & Chr$(13) & Chr$(13)
Stats$ = Stats$ & "Solutions: " & Format$(Finds#, "00000000") & Chr$(13)
Stats$ = Stats$ & "Walks: " & Format$(Walks#, "00000000") & Chr$(13)
Stats$ = Stats$ & "Prunes: " & Format$(Prunes#, "00000000")
Label3.Caption = Stats$
End Sub
Sub StopBox_Click ()
If StopBox.Enabled = True Then
StopBox.Enabled = False
If StopBox.Tag = 2 Then
StopBox.Value = 0
StopBox.Caption = "Any Solution"
ElseIf StopBox.Tag = 0 Then
StopBox.Value = 1
StopBox.Caption = "Circular Only"
ElseIf StopBox.Tag = 1 Then
StopBox.Value = 2
StopBox.Caption = "Continuous"
End If
StopBox.Tag = StopBox.Value
StopBox.Enabled = True
End If
End Sub