?? frmmain.frm
字號:
Index = 8
End
Begin VB.Menu fast
Caption = "十"
Index = 9
End
End
End
Begin VB.Menu kaoyan
Caption = "考驗(&K)"
Begin VB.Menu yincang
Caption = "隱藏"
Shortcut = {F5}
End
Begin VB.Menu xianshi
Caption = "顯示"
Shortcut = {F6}
End
End
Begin VB.Menu help
Caption = "幫助(&H)..."
Begin VB.Menu about
Caption = "操作提示"
Shortcut = {F7}
End
End
End
Attribute VB_Name = "frmmain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim IsMusicOn As Boolean
Dim RetValue As Long
Private n(3), m(3) As Integer 'n(3)記錄游戲區(qū)的四個活動方塊的編號
'm(3)記錄預(yù)覽區(qū)的四個活動方塊的編號
Private situation, situation2, linenum, t As Integer 'situation記錄游戲區(qū)的方塊樣式
'situation2記錄預(yù)覽區(qū)的方塊樣式
'linenum記錄一次消除的行數(shù)
Dim no As Integer
Dim num As Integer
Dim dx(), dy(), xp(), yp(), am(), stx(), sty() As Double
Private Sub hidefang(a As Integer) '定義使方塊不可見的過程
Select Case a
Case 0 'a=0使游戲區(qū)方塊不可見
cmdfang(n(0)).Visible = False
cmdfang(n(1)).Visible = False
cmdfang(n(2)).Visible = False
cmdfang(n(3)).Visible = False
Case 1 'a=1使預(yù)覽區(qū)方塊不可見
cmdfangnext(m(0)).Visible = False
cmdfangnext(m(1)).Visible = False
cmdfangnext(m(2)).Visible = False
cmdfangnext(m(3)).Visible = False
End Select
End Sub
Private Sub showfang(a As Integer) '定義使方塊可見的過程
Select Case a
Case 0 'a=0使游戲區(qū)方塊可見
cmdfang(n(0)).Visible = True
cmdfang(n(1)).Visible = True
cmdfang(n(2)).Visible = True
cmdfang(n(3)).Visible = True
Case 1 'a=1使預(yù)覽區(qū)方塊不可見
cmdfangnext(m(0)).Visible = True
cmdfangnext(m(1)).Visible = True
cmdfangnext(m(2)).Visible = True
cmdfangnext(m(3)).Visible = True
End Select
End Sub
Private Sub clearline() '定義消除整行的過程
For i = 190 To 10 Step -10
If cmdfang(i).Visible = True And _
cmdfang(i + 1).Visible = True And _
cmdfang(i + 2).Visible = True And _
cmdfang(i + 3).Visible = True And _
cmdfang(i + 4).Visible = True And _
cmdfang(i + 5).Visible = True And _
cmdfang(i + 6).Visible = True And _
cmdfang(i + 7).Visible = True And _
cmdfang(i + 8).Visible = True And _
cmdfang(i + 9).Visible = True Then
For j = i + 4 To i Step -1
t = 1
cmdfang(j).Visible = False
cmdfang(2 * i + 9 - j).Visible = False
For k = 1 To 4000
DoEvents
Next
t = 0
Next
linenum = linenum + 1
For j = i - 1 To 0 Step -1
If cmdfang(j).Visible = True Then
cmdfang(j).Visible = False
cmdfang(j + 10).Visible = True
End If
Next
clearline '為了實現(xiàn)連消數(shù)行,這里使用遞歸調(diào)用
End If
Next
End Sub
Private Function downable() As Boolean '自定義函數(shù),確定方塊是否能下降
If n(0) < 190 And n(1) < 190 And n(2) < 190 And n(3) < 190 Then
If cmdfang(n(0) + 10).Visible = False And _
cmdfang(n(1) + 10).Visible = False And _
cmdfang(n(2) + 10).Visible = False And _
cmdfang(n(3) + 10).Visible = False Then
downable = True
Else: downable = False
End If
Else: downable = False
End If
End Function
Private Function leftable() As Boolean '自定義函數(shù),確定方塊是否能左移
If n(0) Mod 10 <> 0 And n(1) Mod 10 <> 0 And n(2) Mod 10 <> 0 And n(3) Mod 10 <> 0 Then
If cmdfang(n(0) - 1).Visible = False And _
cmdfang(n(1) - 1).Visible = False And _
cmdfang(n(2) - 1).Visible = False And _
cmdfang(n(3) - 1).Visible = False Then
leftable = True
Else: leftable = False
End If
Else: leftable = False
End If
End Function
Private Function rightable() As Boolean '自定義函數(shù),確定方塊是否能右移
If n(0) Mod 10 <> 9 And n(1) Mod 10 <> 9 And n(2) Mod 10 <> 9 And n(3) Mod 10 <> 9 Then
If cmdfang(n(0) + 1).Visible = False And _
cmdfang(n(1) + 1).Visible = False And _
cmdfang(n(2) + 1).Visible = False And _
cmdfang(n(3) + 1).Visible = False Then
rightable = True
Else: rightable = False
End If
Else: rightable = False
End If
End Function
Private Sub loadfangkuai() '定義隨機產(chǎn)生一種方塊的過程
Select Case Int(Rnd * 6)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 0 '這是長條型方塊
Select Case Int(Rnd * 2)
Case 0
m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0
Case 1
m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 35: situation2 = 1
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 1 '這是正方形方塊
m(0) = 4: m(1) = 5: m(2) = 14: m(3) = 15: situation2 = 2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 2 '這是正S型方塊
Select Case Int(Rnd * 2)
Case 0
m(0) = 6: m(1) = 5: m(2) = 15: m(3) = 14: situation2 = 3
Case 1
m(0) = 4: m(1) = 14: m(2) = 15: m(3) = 25: situation2 = 4
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 3 '這是反S型方塊
Select Case Int(Rnd * 2)
Case 0
m(0) = 4: m(1) = 5: m(2) = 15: m(3) = 16: situation2 = 5
Case 1
m(0) = 5: m(1) = 15: m(2) = 14: m(3) = 24: situation2 = 6
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 4 '這是T型方塊
Select Case Int(Rnd * 4)
Case 0
m(0) = 4: m(1) = 5: m(2) = 6: m(3) = 15: situation2 = 7
Case 1
m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 14: situation2 = 8
Case 2
m(0) = 16: m(1) = 15: m(2) = 14: m(3) = 5: situation2 = 9
Case 3
m(0) = 24: m(1) = 14: m(2) = 4: m(3) = 15: situation2 = 10
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 5 '這是正7字型方塊
Select Case Int(Rnd * 4)
Case 0
m(0) = 4: m(1) = 5: m(2) = 15: m(3) = 25: situation2 = 11
Case 1
m(0) = 5: m(1) = 15: m(2) = 14: m(3) = 13: situation2 = 12
Case 2
m(0) = 25: m(1) = 24: m(2) = 14: m(3) = 4: situation2 = 13
Case 3
m(0) = 14: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 14
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 6 '這是反7字型方塊
Select Case Int(Rnd * 4)
Case 0
m(0) = 5: m(1) = 4: m(2) = 14: m(3) = 24: situation2 = 15
Case 1
m(0) = 15: m(1) = 5: m(2) = 4: m(3) = 3: situation2 = 16
Case 2
m(0) = 24: m(1) = 25: m(2) = 15: m(3) = 5: situation2 = 17
Case 3
m(0) = 4: m(1) = 14: m(2) = 15: m(3) = 16: situation2 = 18
End Select
End Select
End Sub
Private Sub zhuan() '定義使方塊旋轉(zhuǎn)的過程
Select Case situation
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 0 '這是長條型方塊
If n(0) - 18 >= 2 And n(3) + 9 <= 198 Then '由橫著變成豎立狀態(tài)
If cmdfang(n(0) - 18).Visible = False And _
cmdfang(n(1) - 9).Visible = False And _
cmdfang(n(3) + 9).Visible = False Then
hidefang 0
n(0) = n(0) - 18
n(1) = n(1) - 9
n(3) = n(3) + 9
showfang 0
situation = 1
End If
End If
Case 1
If (n(0) + 18) Mod 10 < 8 And (n(3) - 9) Mod 10 > 0 Then '由豎立變成橫著狀態(tài)
If cmdfang(n(0) + 18).Visible = False And _
cmdfang(n(1) + 9).Visible = False And _
cmdfang(n(3) - 9).Visible = False Then
hidefang 0
n(0) = n(0) + 18
n(1) = n(1) + 9
n(3) = n(3) - 9
showfang 0
situation = 0
End If
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 2 '這是正方形方塊
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 3 '這是正S型方塊
If n(0) - 11 > 1 Then
If cmdfang(n(0) - 11).Visible = False And _
cmdfang(n(3) + 2).Visible = False Then
hidefang 0
n(0) = n(0) - 11
n(2) = n(2) - 9
n(3) = n(3) + 2
showfang 0
situation = 4
End If
End If
Case 4
If (n(3) - 2) Mod 10 < 9 Then
If cmdfang(n(2) + 9).Visible = False And _
cmdfang(n(3) - 2).Visible = False Then
hidefang 0
n(0) = n(0) + 11
n(2) = n(2) + 9
n(3) = n(3) - 2
showfang 0
situation = 3
End If
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 5 '這是反S型方塊
If n(0) - 9 > 1 Then
If cmdfang(n(0) - 9).Visible = False And _
cmdfang(n(3) - 2).Visible = False Then
hidefang 0
n(0) = n(0) - 9
n(2) = n(2) - 11
n(3) = n(3) - 2
showfang 0
situation = 6
End If
End If
Case 6
If (n(3) + 2) Mod 10 > 0 Then
If cmdfang(n(2) + 11).Visible = False And _
cmdfang(n(3) + 2).Visible = False Then
hidefang 0
n(0) = n(0) + 9
n(2) = n(2) + 11
n(3) = n(3) + 2
showfang 0
situation = 5
End If
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 7 '這是T型方塊
If n(0) - 9 > 0 Then
If cmdfang(n(0) - 9).Visible = False Then
hidefang 0
n(0) = n(0) - 9
n(2) = n(2) + 9
n(3) = n(3) - 11
showfang 0
situation = 8
End If
End If
Case 8
If (n(0) + 11) Mod 10 > 0 Then
If cmdfang(n(0) + 11).Visible = False Then
hidefang 0
n(0) = n(0) + 11
n(2) = n(2) - 11
n(3) = n(3) - 9
showfang 0
situation = 9
End If
End If
Case 9
If n(0) + 9 < 199 Then
If cmdfang(n(0) + 9).Visible = False Then
hidefang 0
n(0) = n(0) + 9
n(2) = n(2) - 9
n(3) = n(3) + 11
showfang 0
situation = 10
End If
End If
Case 10
If (n(0) - 11) Mod 10 < 9 Then
If cmdfang(n(0) - 11).Visible = False Then
hidefang 0
n(0) = n(0) - 11
n(2) = n(2) + 11
n(3) = n(3) + 9
showfang 0
situation = 7
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -