Dim gn(3) As Integer
Dim pn(3) As Integer
Dim ps As Integer
Dim gs As Integer
Dim ln As Integer
Dim t As Integer
Private Sub lf()
Select Case Int(Rnd * 6) '产生小于等于6的随机数
Case 0
Select Case Int(Rnd * 2)
Case 0
pn(0) = 3
pn(1) = 4
pn(2) = 5
pn(3) = 6
ps = 0
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 25
pn(3) = 35
ps = 1
End Select
Case 1
pn(0) = 4
pn(1) = 14
pn(2) = 15
pn(3) = 5
ps = 2
Case 2
Select Case Int(Rnd * 2)
Case 0
pn(0) = 6
pn(1) = 5
pn(2) = 15
pn(3) = 14
ps = 3
Case 1
pn(0) = 4
pn(1) = 14
pn(2) = 15
pn(3) = 25
ps = 4
End Select
Case 3
Select Case Int(Rnd * 2)
Case 0
pn(0) = 4
pn(1) = 5
pn(2) = 15
pn(3) = 16
ps = 5
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 14
pn(3) = 24
ps = 6
End Select
Case 4
Select Case Int(Rnd * 4)
Case 0
pn(0) = 4
pn(1) = 5
pn(2) = 6
pn(3) = 15
ps = 7
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 25
pn(3) = 14
ps = 8
Case 2
pn(0) = 16
pn(1) = 15
pn(2) = 14
pn(3) = 5
ps = 9
Case 3
pn(0) = 24
pn(1) = 4
pn(2) = 15
pn(3) = 14
ps = 10
End Select
Case 5
Select Case Int(Rnd * 4)
Case 0
pn(0) = 4
pn(1) = 5
pn(2) = 15
pn(3) = 25
ps = 11
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 14
pn(3) = 13
ps = 12
Case 2
pn(0) = 25
pn(1) = 24
pn(2) = 14
pn(3) = 4
ps = 13
Case 3
pn(0) = 14
pn(1) = 4
pn(2) = 5
pn(3) = 6
ps = 14
End Select
Case 6
Select Case Int(Rnd * 3)
Case 0
pn(0) = 5
pn(1) = 4
pn(2) = 14
pn(3) = 24
ps = 15
Case 1
pn(0) = 15
pn(1) = 5
pn(2) = 4
pn(3) = 3
ps = 16
Case 2
pn(0) = 24
pn(1) = 25
pn(2) = 15
pn(3) = 5
ps = 17
Case 3
pn(0) = 4
pn(1) = 14
pn(2) = 15
pn(3) = 16
ps = 18
End Select
End Select
End Sub
Private Sub hf(hn As Integer)
Select Case hn
Case 0
Cd1(gn(0)).Visible = False
Cd1(gn(1)).Visible = False
Cd1(gn(2)).Visible = False
Cd1(gn(3)).Visible = False
Case 1
Cd2(pn(0)).Visible = False
Cd2(pn(1)).Visible = False
Cd2(pn(2)).Visible = False
Cd2(pn(3)).Visible = False
End Select
End Sub
Private Sub sf(sn As Integer)
Select Case sn
Case 0
Cd1(gn(0)).Visible = True
Cd1(gn(1)).Visible = True
Cd1(gn(2)).Visible = True
Cd1(gn(3)).Visible = True
Case 1
Cd2(pn(0)).Visible = True
Cd2(pn(1)).Visible = True
Cd2(pn(2)).Visible = True
Cd2(pn(3)).Visible = True
End Select
End Sub
Private Sub begin_Click()
Picture1.SetFocus
Timer2.Interval = 1000 / Val(Text2.Text)
For i = 0 To 3
gn(i) = pn(i)
Next
sf (0)
gs = ps
Timer2.Enabled = True
hf (1)
lf
sf (1)
End Sub
Private Sub continue_Click()
Timer2.Enabled = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If t = 0 Then
hf (0)
Select Case KeyCode
Case vbKeyLeft
If la = True Then
For j = 0 To 3
Cd1(gn(j) - 1).Visible = True
gn(j) = gn(j) - 1
Next
End If
sf (0)
Case vbKeyDown
If da = True Then
For j = 0 To 3
Cd1(gn(j) + 10).Visible = True
gn(j) = gn(j) + 10
Next
End If
sf (0)
Case vbKeyRight
If ra = True Then
For j = 0 To 3
Cd1(gn(j) + 1).Visible = True
gn(j) = gn(j) + 1
Next
End If
sf (0)
Case vbKeyUp
sf (0)
xz
Case Else
sf (0)
End Select
End If
End Sub
Private Sub Form_Load()
sp(1).Checked = True
Dim i As Integer
For i = 1 To 199
Load Cd1(i)
Next i
For i = 0 To 199
Cd1(i).Left = (i Mod 10) * 495
Cd1(i).Top = (i \ 10) * 495
Cd1(i).Visible = False
Cd1(i).BackColor = vbBlue
Next
For i = 1 To 39
Load Cd2(i)
Next
For i = 0 To 39
Cd2(i).Left = (i Mod 10 - 2) * 495
Cd2(i).Top = (i \ 10 + 1) * 495
Cd2(i).Visible = False
Cd2(i).BackColor = vbGreen
Next
Randomize
lf
sf (1)
a = False
End Sub
Private Sub over_Click()
End
End Sub
Private Sub pause_Click()
Timer2.Enabled = False
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If t = 0 Then
hf (0)
Select Case Button
Case 1
If la = True Then
For j = 0 To 3
Cd1(gn(j) - 1).Visible = True
gn(j) = gn(j) - 1
Next
End If
sf (0)
Case 2
If ra = True Then
For j = 0 To 3
Cd1(gn(j) + 1).Visible = True
gn(j) = gn(j) + 1
Next
End If
sf (0)
Case 4
sf (0)
xz
Case Else
sf (0)
End Select
End If
End Sub
Private Sub sp_Click(Index As Integer)
Dim j As Integer
For j = 1 To 5
sp(j).Checked = False
Next
sp(Index).Checked = True
Text2.Text = Index
End Sub
Private Sub Timer2_Timer()
hf (0)
If da() = True Then
For j = 0 To 3
gn(j) = gn(j) + 10
Next
sf (0)
Else
sf (0)
cl
For i = 0 To 9
If Cd1(i).Visible = True Then Exit For
Next
Dim mymsg As String
Dim myref As Integer
If i < 10 Then
mymsg = "输了不要灰心" & vbCrLf & "是否重新开始玩游戏"
myref = MsgBox(mymsg, vbYesNo + vbQuestion, "俄罗斯方块游戏")
If myref = vbYes Then
For i = 0 To 199
Cd1(i).Visible = False
Next
Text3.Text = 0
ln = 0
For j = i * 10 To i * 10 + 9
If Rnd >= 0.5 Then Cd1(j).Visible = True
Next
Else
End
End If
End If
For i = 0 To 3
gn(i) = pn(i)
Next
sf (0)
gs = ps
Text3.Text = Str(Val(Text3.Text) + 10 * (2 ^ ln - 1))
If Val(Text3.Text) >= 300 ^ Val(Text2.Text) Then
Text2.Text = Str(Val(Text2.Text) + 1)
Timer2.Interval = 1000 / Val(Text2.Text)
End If
ln = 0
hf (1)
lf
sf (1)
End If
End Sub
Private Sub cl()
For i = 190 To 10 Step -10
n = 0
For m = 0 To 9
If Cd1(i + m).Visible = True Then n = n + 1
Next
If n = 10 Then
For j = i + 4 To i Step -1
t = 1
Cd1(j).Visible = False
Cd1(2 * i + 9 - j).Visible = False
For k = 1 To 4000
DoEvents
Next
t = 0
Next
ln = ln + 1
For j = i - 1 To 0 Step -1
If Cd1(j).Visible = True Then
Cd1(j).Visible = False
Cd1(j + 10).Visible = True
End If
Next
cl
End If
Next
End Sub
Function da() As Boolean
If gn(0) < 190 And gn(1) < 190 And gn(2) < 190 And gn(3) < 190 Then
If Cd1(gn(0) + 10).Visible = False And Cd1(gn(1) + 10).Visible = False And Cd1(gn(2) + 10).Visible = False And Cd1(gn(3) + 10).Visible = False Then
da = True
Else
da = False
End If
Else
da = False
End If
End Function
Function ra() As Boolean
If gn(0) Mod 10 <> 9 And gn(1) Mod 10 <> 9 And gn(2) Mod 10 <> 9 And gn(3) Mod 10 <> 9 Then
If Cd1(gn(0) + 1).Visible = False And Cd1(gn(1) + 1).Visible = False And Cd1(gn(2) + 1).Visible = False And Cd1(gn(3) + 1).Visible = False Then
ra = True
Else
ra = False
End If
Else
ra = False
End If
End Function
Function la() As Boolean
If gn(0) Mod 10 <> 0 And gn(1) Mod 10 <> 0 And gn(2) Mod 10 <> 0 And gn(3) Mod 10 <> 0 Then
If Cd1(gn(0) - 1).Visible = False And Cd1(gn(1) - 1).Visible = False And Cd1(gn(2) - 1).Visible = False And Cd1(gn(3) - 1).Visible = False Then
la = True
Else
la = False
End If
Else
la = False
End If
End Function
Private Sub xz()
Select Case gs
Case 0
If gn(0) - 18 >= 2 And gn(3) + 9 <= 198 Then
If Cd1(gn(0) - 18).Visible = False And Cd1(gn(1) - 9).Visible = False And _
Cd1(gn(3) + 9).Visible = False Then
hf (0)
gn(0) = gn(0) - 18
gn(1) = gn(1) - 9
gn(3) = gn(3) + 9
sf (0)
gs = 1
End If
End If
Case 1
If (gn(0) + 18) Mod 10 < 8 And (gn(3) - 9) Mod 10 > 0 Then
If Cd1(gn(0) + 18).Visible = False And Cd1(gn(1) + 9).Visible = False And _
Cd1(gn(3) - 9).Visible = False Then
hf (0)
gn(0) = gn(0) + 18
gn(1) = gn(1) + 9
gn(3) = gn(3) - 9
sf (0)
gs = 0
End If
End If
Case 2
Case 3
If gn(0) - 11 > 1 Then
If Cd1(gn(0) - 11).Visible = False And _
Cd1(gn(3) + 2).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) - 9
gn(3) = gn(3) + 2
sf (0)
gs = 4
End If
End If
Case 4
If (gn(3) - 2) Mod 10 < 9 Then
If Cd1(gn(2) + 9).Visible = False And _
Cd1(gn(3) - 2).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) + 9
gn(3) = gn(3) - 2
sf (0)
gs = 3
End If
End If
Case 5
If gn(0) - 9 > 1 Then
If Cd1(gn(0) - 9).Visible = False And _
Cd1(gn(3) - 2).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) - 11
gn(3) = gn(3) - 2
sf (0)
gs = 6
End If
End If
Case 6
If (gn(3) + 2) Mod 10 > 0 Then
If Cd1(gn(2) + 11).Visible = False And _
Cd1(gn(3) + 2).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) + 11
gn(3) = gn(3) + 2
sf (0)
gs = 5
End If
End If
Case 7
If gn(0) - 9 > 0 Then
If Cd1(gn(0) - 9).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) + 9
gn(3) = gn(3) - 11
sf (0)
gs = 8
End If
End If
Case 8
If (gn(0) + 11) Mod 10 > 0 Then
If Cd1(gn(0) + 11).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) - 11
gn(3) = gn(3) - 9
sf (0)
gs = 9
End If
End If
Case 9
If gn(0) + 9 < 199 Then
If Cd1(gn(0) + 9).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) - 9
gn(3) = gn(3) + 11
sf (0)
gs = 10
End If
End If
Case 10
If (gn(0) - 11) Mod 10 < 9 Then
If Cd1(gn(0) - 11).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) + 11
gn(3) = gn(3) + 9
sf (0)
gs = 7
End If
End If
Case 11
If gn(0) - 9 > 1 And (gn(3) - 22) Mod 10 < 9 Then
If Cd1(gn(0) - 9).Visible = False And _
Cd1(gn(3) - 22).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) - 11
gn(3) = gn(3) - 22
sf (0)
gs = 12
End If
End If
Case 12
If (gn(0) + 11) Mod 10 > 0 And (gn(3) - 18) > 1 Then
If Cd1(gn(0) + 11).Visible = False And _
Cd1(gn(3) - 18).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) - 9
gn(3) = gn(3) - 18
sf (0)
gs = 13
End If
End If
Case 13
If gn(0) + 9 < 198 And (gn(3) + 22) Mod 10 > 0 Then
If Cd1(gn(0) + 9).Visible = False And _
Cd1(gn(3) + 22).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) + 11
gn(3) = gn(3) + 22
sf (0)
gs = 14
End If
End If
Case 14
If (gn(0) - 11) Mod 10 < 9 And (gn(3) + 18) < 198 Then
If Cd1(gn(0) - 11).Visible = False And _
Cd1(gn(3) + 18).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) + 9
gn(3) = gn(3) + 18
sf (0)
gs = 11
End If
End If
Case 15
If (gn(3) - 22) Mod 10 < 8 Then
If Cd1(gn(2) - 11).Visible = False And _
Cd1(gn(3) - 22).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) - 11
gn(3) = gn(3) - 22
sf (0)
gs = 16
End If
End If
Case 16
If gn(3) - 18 > 1 Then
If Cd1(gn(2) - 9).Visible = False And _
Cd1(gn(3) - 18).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) - 9
gn(3) = gn(3) - 18
sf (0)
gs = 17
End If
End If
Case 17
If (gn(3) + 22) Mod 10 > 1 Then
If Cd1(gn(1) + 11).Visible = False And _
Cd1(gn(3) + 22).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) + 11
gn(3) = gn(3) + 22
sf (0)
gs = 18
End If
End If
Case 18
If gn(3) + 18 Mod 10 < 198 Then
If Cd1(gn(2) + 9).Visible = False And _
Cd1(gn(3) + 18).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) + 9
gn(3) = gn(3) + 18
sf (0)
gs = 15
End If
End If
End Select
End Sub
Dim pn(3) As Integer
Dim ps As Integer
Dim gs As Integer
Dim ln As Integer
Dim t As Integer
Private Sub lf()
Select Case Int(Rnd * 6) '产生小于等于6的随机数
Case 0
Select Case Int(Rnd * 2)
Case 0
pn(0) = 3
pn(1) = 4
pn(2) = 5
pn(3) = 6
ps = 0
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 25
pn(3) = 35
ps = 1
End Select
Case 1
pn(0) = 4
pn(1) = 14
pn(2) = 15
pn(3) = 5
ps = 2
Case 2
Select Case Int(Rnd * 2)
Case 0
pn(0) = 6
pn(1) = 5
pn(2) = 15
pn(3) = 14
ps = 3
Case 1
pn(0) = 4
pn(1) = 14
pn(2) = 15
pn(3) = 25
ps = 4
End Select
Case 3
Select Case Int(Rnd * 2)
Case 0
pn(0) = 4
pn(1) = 5
pn(2) = 15
pn(3) = 16
ps = 5
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 14
pn(3) = 24
ps = 6
End Select
Case 4
Select Case Int(Rnd * 4)
Case 0
pn(0) = 4
pn(1) = 5
pn(2) = 6
pn(3) = 15
ps = 7
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 25
pn(3) = 14
ps = 8
Case 2
pn(0) = 16
pn(1) = 15
pn(2) = 14
pn(3) = 5
ps = 9
Case 3
pn(0) = 24
pn(1) = 4
pn(2) = 15
pn(3) = 14
ps = 10
End Select
Case 5
Select Case Int(Rnd * 4)
Case 0
pn(0) = 4
pn(1) = 5
pn(2) = 15
pn(3) = 25
ps = 11
Case 1
pn(0) = 5
pn(1) = 15
pn(2) = 14
pn(3) = 13
ps = 12
Case 2
pn(0) = 25
pn(1) = 24
pn(2) = 14
pn(3) = 4
ps = 13
Case 3
pn(0) = 14
pn(1) = 4
pn(2) = 5
pn(3) = 6
ps = 14
End Select
Case 6
Select Case Int(Rnd * 3)
Case 0
pn(0) = 5
pn(1) = 4
pn(2) = 14
pn(3) = 24
ps = 15
Case 1
pn(0) = 15
pn(1) = 5
pn(2) = 4
pn(3) = 3
ps = 16
Case 2
pn(0) = 24
pn(1) = 25
pn(2) = 15
pn(3) = 5
ps = 17
Case 3
pn(0) = 4
pn(1) = 14
pn(2) = 15
pn(3) = 16
ps = 18
End Select
End Select
End Sub
Private Sub hf(hn As Integer)
Select Case hn
Case 0
Cd1(gn(0)).Visible = False
Cd1(gn(1)).Visible = False
Cd1(gn(2)).Visible = False
Cd1(gn(3)).Visible = False
Case 1
Cd2(pn(0)).Visible = False
Cd2(pn(1)).Visible = False
Cd2(pn(2)).Visible = False
Cd2(pn(3)).Visible = False
End Select
End Sub
Private Sub sf(sn As Integer)
Select Case sn
Case 0
Cd1(gn(0)).Visible = True
Cd1(gn(1)).Visible = True
Cd1(gn(2)).Visible = True
Cd1(gn(3)).Visible = True
Case 1
Cd2(pn(0)).Visible = True
Cd2(pn(1)).Visible = True
Cd2(pn(2)).Visible = True
Cd2(pn(3)).Visible = True
End Select
End Sub
Private Sub begin_Click()
Picture1.SetFocus
Timer2.Interval = 1000 / Val(Text2.Text)
For i = 0 To 3
gn(i) = pn(i)
Next
sf (0)
gs = ps
Timer2.Enabled = True
hf (1)
lf
sf (1)
End Sub
Private Sub continue_Click()
Timer2.Enabled = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If t = 0 Then
hf (0)
Select Case KeyCode
Case vbKeyLeft
If la = True Then
For j = 0 To 3
Cd1(gn(j) - 1).Visible = True
gn(j) = gn(j) - 1
Next
End If
sf (0)
Case vbKeyDown
If da = True Then
For j = 0 To 3
Cd1(gn(j) + 10).Visible = True
gn(j) = gn(j) + 10
Next
End If
sf (0)
Case vbKeyRight
If ra = True Then
For j = 0 To 3
Cd1(gn(j) + 1).Visible = True
gn(j) = gn(j) + 1
Next
End If
sf (0)
Case vbKeyUp
sf (0)
xz
Case Else
sf (0)
End Select
End If
End Sub
Private Sub Form_Load()
sp(1).Checked = True
Dim i As Integer
For i = 1 To 199
Load Cd1(i)
Next i
For i = 0 To 199
Cd1(i).Left = (i Mod 10) * 495
Cd1(i).Top = (i \ 10) * 495
Cd1(i).Visible = False
Cd1(i).BackColor = vbBlue
Next
For i = 1 To 39
Load Cd2(i)
Next
For i = 0 To 39
Cd2(i).Left = (i Mod 10 - 2) * 495
Cd2(i).Top = (i \ 10 + 1) * 495
Cd2(i).Visible = False
Cd2(i).BackColor = vbGreen
Next
Randomize
lf
sf (1)
a = False
End Sub
Private Sub over_Click()
End
End Sub
Private Sub pause_Click()
Timer2.Enabled = False
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If t = 0 Then
hf (0)
Select Case Button
Case 1
If la = True Then
For j = 0 To 3
Cd1(gn(j) - 1).Visible = True
gn(j) = gn(j) - 1
Next
End If
sf (0)
Case 2
If ra = True Then
For j = 0 To 3
Cd1(gn(j) + 1).Visible = True
gn(j) = gn(j) + 1
Next
End If
sf (0)
Case 4
sf (0)
xz
Case Else
sf (0)
End Select
End If
End Sub
Private Sub sp_Click(Index As Integer)
Dim j As Integer
For j = 1 To 5
sp(j).Checked = False
Next
sp(Index).Checked = True
Text2.Text = Index
End Sub
Private Sub Timer2_Timer()
hf (0)
If da() = True Then
For j = 0 To 3
gn(j) = gn(j) + 10
Next
sf (0)
Else
sf (0)
cl
For i = 0 To 9
If Cd1(i).Visible = True Then Exit For
Next
Dim mymsg As String
Dim myref As Integer
If i < 10 Then
mymsg = "输了不要灰心" & vbCrLf & "是否重新开始玩游戏"
myref = MsgBox(mymsg, vbYesNo + vbQuestion, "俄罗斯方块游戏")
If myref = vbYes Then
For i = 0 To 199
Cd1(i).Visible = False
Next
Text3.Text = 0
ln = 0
For j = i * 10 To i * 10 + 9
If Rnd >= 0.5 Then Cd1(j).Visible = True
Next
Else
End
End If
End If
For i = 0 To 3
gn(i) = pn(i)
Next
sf (0)
gs = ps
Text3.Text = Str(Val(Text3.Text) + 10 * (2 ^ ln - 1))
If Val(Text3.Text) >= 300 ^ Val(Text2.Text) Then
Text2.Text = Str(Val(Text2.Text) + 1)
Timer2.Interval = 1000 / Val(Text2.Text)
End If
ln = 0
hf (1)
lf
sf (1)
End If
End Sub
Private Sub cl()
For i = 190 To 10 Step -10
n = 0
For m = 0 To 9
If Cd1(i + m).Visible = True Then n = n + 1
Next
If n = 10 Then
For j = i + 4 To i Step -1
t = 1
Cd1(j).Visible = False
Cd1(2 * i + 9 - j).Visible = False
For k = 1 To 4000
DoEvents
Next
t = 0
Next
ln = ln + 1
For j = i - 1 To 0 Step -1
If Cd1(j).Visible = True Then
Cd1(j).Visible = False
Cd1(j + 10).Visible = True
End If
Next
cl
End If
Next
End Sub
Function da() As Boolean
If gn(0) < 190 And gn(1) < 190 And gn(2) < 190 And gn(3) < 190 Then
If Cd1(gn(0) + 10).Visible = False And Cd1(gn(1) + 10).Visible = False And Cd1(gn(2) + 10).Visible = False And Cd1(gn(3) + 10).Visible = False Then
da = True
Else
da = False
End If
Else
da = False
End If
End Function
Function ra() As Boolean
If gn(0) Mod 10 <> 9 And gn(1) Mod 10 <> 9 And gn(2) Mod 10 <> 9 And gn(3) Mod 10 <> 9 Then
If Cd1(gn(0) + 1).Visible = False And Cd1(gn(1) + 1).Visible = False And Cd1(gn(2) + 1).Visible = False And Cd1(gn(3) + 1).Visible = False Then
ra = True
Else
ra = False
End If
Else
ra = False
End If
End Function
Function la() As Boolean
If gn(0) Mod 10 <> 0 And gn(1) Mod 10 <> 0 And gn(2) Mod 10 <> 0 And gn(3) Mod 10 <> 0 Then
If Cd1(gn(0) - 1).Visible = False And Cd1(gn(1) - 1).Visible = False And Cd1(gn(2) - 1).Visible = False And Cd1(gn(3) - 1).Visible = False Then
la = True
Else
la = False
End If
Else
la = False
End If
End Function
Private Sub xz()
Select Case gs
Case 0
If gn(0) - 18 >= 2 And gn(3) + 9 <= 198 Then
If Cd1(gn(0) - 18).Visible = False And Cd1(gn(1) - 9).Visible = False And _
Cd1(gn(3) + 9).Visible = False Then
hf (0)
gn(0) = gn(0) - 18
gn(1) = gn(1) - 9
gn(3) = gn(3) + 9
sf (0)
gs = 1
End If
End If
Case 1
If (gn(0) + 18) Mod 10 < 8 And (gn(3) - 9) Mod 10 > 0 Then
If Cd1(gn(0) + 18).Visible = False And Cd1(gn(1) + 9).Visible = False And _
Cd1(gn(3) - 9).Visible = False Then
hf (0)
gn(0) = gn(0) + 18
gn(1) = gn(1) + 9
gn(3) = gn(3) - 9
sf (0)
gs = 0
End If
End If
Case 2
Case 3
If gn(0) - 11 > 1 Then
If Cd1(gn(0) - 11).Visible = False And _
Cd1(gn(3) + 2).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) - 9
gn(3) = gn(3) + 2
sf (0)
gs = 4
End If
End If
Case 4
If (gn(3) - 2) Mod 10 < 9 Then
If Cd1(gn(2) + 9).Visible = False And _
Cd1(gn(3) - 2).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) + 9
gn(3) = gn(3) - 2
sf (0)
gs = 3
End If
End If
Case 5
If gn(0) - 9 > 1 Then
If Cd1(gn(0) - 9).Visible = False And _
Cd1(gn(3) - 2).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) - 11
gn(3) = gn(3) - 2
sf (0)
gs = 6
End If
End If
Case 6
If (gn(3) + 2) Mod 10 > 0 Then
If Cd1(gn(2) + 11).Visible = False And _
Cd1(gn(3) + 2).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) + 11
gn(3) = gn(3) + 2
sf (0)
gs = 5
End If
End If
Case 7
If gn(0) - 9 > 0 Then
If Cd1(gn(0) - 9).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) + 9
gn(3) = gn(3) - 11
sf (0)
gs = 8
End If
End If
Case 8
If (gn(0) + 11) Mod 10 > 0 Then
If Cd1(gn(0) + 11).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) - 11
gn(3) = gn(3) - 9
sf (0)
gs = 9
End If
End If
Case 9
If gn(0) + 9 < 199 Then
If Cd1(gn(0) + 9).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) - 9
gn(3) = gn(3) + 11
sf (0)
gs = 10
End If
End If
Case 10
If (gn(0) - 11) Mod 10 < 9 Then
If Cd1(gn(0) - 11).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) + 11
gn(3) = gn(3) + 9
sf (0)
gs = 7
End If
End If
Case 11
If gn(0) - 9 > 1 And (gn(3) - 22) Mod 10 < 9 Then
If Cd1(gn(0) - 9).Visible = False And _
Cd1(gn(3) - 22).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) - 11
gn(3) = gn(3) - 22
sf (0)
gs = 12
End If
End If
Case 12
If (gn(0) + 11) Mod 10 > 0 And (gn(3) - 18) > 1 Then
If Cd1(gn(0) + 11).Visible = False And _
Cd1(gn(3) - 18).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) - 9
gn(3) = gn(3) - 18
sf (0)
gs = 13
End If
End If
Case 13
If gn(0) + 9 < 198 And (gn(3) + 22) Mod 10 > 0 Then
If Cd1(gn(0) + 9).Visible = False And _
Cd1(gn(3) + 22).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) + 11
gn(3) = gn(3) + 22
sf (0)
gs = 14
End If
End If
Case 14
If (gn(0) - 11) Mod 10 < 9 And (gn(3) + 18) < 198 Then
If Cd1(gn(0) - 11).Visible = False And _
Cd1(gn(3) + 18).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) + 9
gn(3) = gn(3) + 18
sf (0)
gs = 11
End If
End If
Case 15
If (gn(3) - 22) Mod 10 < 8 Then
If Cd1(gn(2) - 11).Visible = False And _
Cd1(gn(3) - 22).Visible = False Then
hf (0)
gn(0) = gn(0) + 9
gn(2) = gn(2) - 11
gn(3) = gn(3) - 22
sf (0)
gs = 16
End If
End If
Case 16
If gn(3) - 18 > 1 Then
If Cd1(gn(2) - 9).Visible = False And _
Cd1(gn(3) - 18).Visible = False Then
hf (0)
gn(0) = gn(0) - 11
gn(2) = gn(2) - 9
gn(3) = gn(3) - 18
sf (0)
gs = 17
End If
End If
Case 17
If (gn(3) + 22) Mod 10 > 1 Then
If Cd1(gn(1) + 11).Visible = False And _
Cd1(gn(3) + 22).Visible = False Then
hf (0)
gn(0) = gn(0) - 9
gn(2) = gn(2) + 11
gn(3) = gn(3) + 22
sf (0)
gs = 18
End If
End If
Case 18
If gn(3) + 18 Mod 10 < 198 Then
If Cd1(gn(2) + 9).Visible = False And _
Cd1(gn(3) + 18).Visible = False Then
hf (0)
gn(0) = gn(0) + 11
gn(2) = gn(2) + 9
gn(3) = gn(3) + 18
sf (0)
gs = 15
End If
End If
End Select
End Sub