给一个俄罗斯方块的VB代码!
给一个俄罗斯方块的VB代码!
有兴趣的同学可以试试:
首先,在form中添加label1,label2,command1,command2,timer1
label1位置要在左上方,离其它控件远很多!
timer1属性:enabled=false
label1的属性:backcolor用天蓝色
command1属性:caption:"start"
command2属性:caption:"quit"
下面是主要代码:(900余行,不算空行)
'
'
Option Base 1
Dim NNn(1 To 4, 1 To 2) As Integer
Dim FType As Integer
Dim Score As Integer
Dim FTypeE As Integer
Dim MM(1 To 10, 1 To 15) As Integer
Dim JG As Boolean
Dim ActiOn As Integer
Dim Sped As Variant
Dim Rou As Integer
Private Sub Command1_Click()
Timer1.Enabled = False
ActiOn = 0
Label2.Caption = "Score:0"
Dim Speed As Integer
ww:
ToZero
tt = InputBox("Input your Speed(1-10):", "New Game", "5")
'MsgBox tt
'Exit Sub
If tt = "" Then Exit Sub
Sped = tt
If IsNumeric(Sped) = False Then
GoTo ww
End If
If Int(Sped) > 10 Then
Speed = 10
ElseIf Int(Sped < 1) Then
Speed = 1
Else
Sped = Int(Sped)
End If
Select Case Sped
Case 1
Speed = 1000
Case 2
Speed = 800
Case 3
Speed = 600
Case 4
Speed = 550
Case 5
Speed = 500
Case 6
Speed = 400
Case 7
Speed = 300
Case 8
Speed = 200
Case 9
Speed = 150
Case 10
Speed = 100
End Select
Timer1.Interval = Speed
Timer1.Enabled = True
Label2.Caption = "Score:0" & vbCrLf & "Speed:" & Sped & vbCrLf & "Round:0"
End Sub
Private Sub Command1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 87 'KeyUp
ActiOn = 1
Case 83 'KeyDown
ActiOn = 2
MsgBox "rrr"
Case 65 'KeyLeft
ActiOn = 3
MsgBox "rrr"
Case 68 'KeyRight
ActiOn = 4
End Select
'''''''''''''''''''''''''''''''''''
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 87
'MsgBox "wwww"
ActiOn = 1
Case 83 'KeyDown
ActiOn = 2
'MsgBox "rrr"
Case 65 'KeyLeft
ActiOn = 3
'MsgBox "rrr"
Case 68 'KeyRight
ActiOn = 4
End Select
'''''''''''''''''''''''''''''''''''
DoWithActiOn
End Sub
Private Sub Form_Load()
StandB
ToZero
''''''''''''''''''
JG = False
Rou = 0
Label2.Caption = "Score:0" & vbCrLf & "Speed:5" & vbCrLf & "Round:0"
End Sub
Sub ToZero()
For i = 1 To 10
For j = 1 To 15
MM(i, j) = 0
Next j
Next i
For u = 1 To 4
For v = 1 To 2
NNn(u, v) = 0
Next v
Next u
Score = 0
Rou = 0
Dui
End Sub
Sub StandB()
Dim Dleft As Integer, Dtop As Integer
Dleft = 600
Dright = 240
Dim Doindex As Integer
Doindex = 1
For i = 1 To 10
Dleft = 600 + (i - 1) * 300
Dtop = 0
For j = 1 To 15
Dtop = 240 + (j - 1) * 300
If Not (j = 1 And i = 1) Then
Doindex = Doindex + 1
Load Label1(Doindex)
Label1(Doindex).Left = Dleft
Label1(Doindex).Top = Dtop
Label1(Doindex).Height = 300
Label1(Doindex).Width = 300
Label1(Doindex).Visible = True
Label1(Doindex).Caption = ""
End If
Next j
Next i
'MsgBox Doindex
End Sub
Sub Dui() '让数组与图形对应'
If Timer1.Enabled = False Then Exit Sub
Dim Nown As Integer
Nown = 0
For i = 1 To 10
For j = 1 To 15
Nown = Nown + 1
Select Case MM(i, j)
Case 0
Label1(Nown).BackColor = vbCyan
Case 1
Label1(Nown).BackColor = vbBlue
Case 2
Label1(Nown).BackColor = vbRed
End Select
Next j
Next i
End Sub
Sub MakeAN()
Gscore
If Timer1.Enabled = False Then Exit Sub
Randomize
FType = 0
FTypeE = 0
Dim TTTT As Integer
TTTT = Rnd * 6 + 1
Dim EEEE As Integer
EEEE = Rnd * 3 + 1
Select Case TTTT
Case 1 '排出方块的坐标
NNn(1, 1) = 5 'o
NNn(1, 2) = 1 '''''ooo
NNn(2, 1) = 4
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
Case 2 'oooo
NNn(1, 1) = 4
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 6
NNn(3, 2) = 1
NNn(4, 1) = 7
NNn(4, 2) = 1
Case 3 'oo
NNn(1, 1) = 4 ''oo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
Case 4 'oo
NNn(1, 1) = 4 ''oo
NNn(1, 2) = 2
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 1
NNn(4, 1) = 6
NNn(4, 2) = 1
Case 5 'o
NNn(1, 1) = 4 ''ooo
NNn(1, 2) = 2
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 6
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 1
Case 6 'o
NNn(1, 1) = 4 'ooo
NNn(1, 2) = 1
NNn(2, 1) = 4
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
Case 7 'oo
NNn(1, 1) = 5 'oo
NNn(1, 2) = 1
NNn(2, 1) = 6
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
End Select
If EEEE = 2 Then
Select Case TTTT
Case 1 '排出方块的坐标
NNn(1, 1) = 4 'o
NNn(1, 2) = 1 '''''ooo
NNn(2, 1) = 4
NNn(2, 2) = 2
NNn(3, 1) = 4
NNn(3, 2) = 3
NNn(4, 1) = 5
NNn(4, 2) = 2
Case 2 'oooo
NNn(1, 1) = 5
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 3
NNn(4, 1) = 5
NNn(4, 2) = 4
Case 3 'oo
NNn(1, 1) = 5 ''oo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 4
NNn(3, 2) = 2
NNn(4, 1) = 4
NNn(4, 2) = 3
Case 4 'oo
NNn(1, 1) = 5 ''oo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 6
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 3
Case 5 'o
NNn(1, 1) = 4 ''ooo
NNn(1, 2) = 1
NNn(2, 1) = 4
NNn(2, 2) = 2
NNn(3, 1) = 4
NNn(3, 2) = 3
NNn(4, 1) = 5
NNn(4, 2) = 3
Case 6 'o
NNn(1, 1) = 4 'ooo
NNn(1, 2) = 1
NNn(2, 1) = 4
NNn(2, 2) = 2
NNn(3, 1) = 4
NNn(3, 2) = 3
NNn(4, 1) = 5
NNn(4, 2) = 1
Case 7 'oo
NNn(1, 1) = 5 'oo
NNn(1, 2) = 1
NNn(2, 1) = 6
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
End Select
ElseIf EEEE = 3 Then
Select Case TTTT
Case 1 '排出方块的坐标
NNn(1, 1) = 4 'o
NNn(1, 2) = 1 '''''ooo
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 6
NNn(3, 2) = 1
NNn(4, 1) = 5
NNn(4, 2) = 2
Case 2 'oooo
NNn(1, 1) = 4
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 6
NNn(3, 2) = 1
NNn(4, 1) = 7
NNn(4, 2) = 1
Case 3 'oo
NNn(1, 1) = 4 ''oo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
Case 4 'oo
NNn(1, 1) = 4 ''oo
NNn(1, 2) = 2
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 1
NNn(4, 1) = 6
NNn(4, 2) = 1
Case 5 'o
NNn(1, 1) = 4 ''ooo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 6
NNn(3, 2) = 1
NNn(4, 1) = 4
NNn(4, 2) = 2
Case 6 'o
NNn(1, 1) = 4 'ooo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 6
NNn(3, 2) = 1
NNn(4, 1) = 6
NNn(4, 2) = 2
Case 7 'oo
NNn(1, 1) = 5 'oo
NNn(1, 2) = 1
NNn(2, 1) = 6
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
End Select
ElseIf EEEE = 4 Then
Select Case TTTT
Case 1 '排出方块的坐标
NNn(1, 1) = 5 'o
NNn(1, 2) = 1 '''''ooo
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 3
NNn(4, 1) = 4
NNn(4, 2) = 2
Case 2 'oooo
NNn(1, 1) = 5
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 5
NNn(3, 2) = 3
NNn(4, 1) = 5
NNn(4, 2) = 4
Case 3 'oo
NNn(1, 1) = 5 ''oo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 4
NNn(3, 2) = 2
NNn(4, 1) = 4
NNn(4, 2) = 3
Case 4 'oo
NNn(1, 1) = 5 ''oo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 2
NNn(3, 1) = 6
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 3
Case 5 'o
NNn(1, 1) = 4 ''ooo
NNn(1, 2) = 1
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 5
NNn(4, 2) = 3
Case 6 'o
NNn(1, 1) = 4 'ooo
NNn(1, 2) = 3
NNn(2, 1) = 5
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 5
NNn(4, 2) = 3
Case 7 'oo
NNn(1, 1) = 5 'oo
NNn(1, 2) = 1
NNn(2, 1) = 6
NNn(2, 2) = 1
NNn(3, 1) = 5
NNn(3, 2) = 2
NNn(4, 1) = 6
NNn(4, 2) = 2
End Select
End If
Rou = Rou + 1
FType = TTTT
FTypeE = EEEE
End Sub
Sub PaiRu()
On Error Resume Next
If Timer1.Enabled = False Then Exit Sub
''''''''''''''''''''
''判断‘’‘’‘’
Dim www As Boolean
www = False
For i = 1 To 4
Dim xx, yy
xx = NNn(i, 1)
yy = NNn(i, 2)
If yy = 15 Then
www = True
GoTo ss
End If
If MM(xx, yy + 1) = 1 Then www = True
ss:
Next i
If www = False Then
For h = 1 To 4
Dim ex, ey
ex = NNn(h, 1)
ey = NNn(h, 2)
MM(ex, ey) = 0
Next h
For j = 1 To 4
NNn(j, 2) = NNn(j, 2) + 1
Next j
For r = 1 To 4
Dim xy, yx
xy = NNn(r, 1)
yx = NNn(r, 2)
MM(xy, yx) = 2
Next r
XiaoX
Else
For t = 1 To 4
Dim xxx, yyy
xxx = NNn(t, 1)
yyy = NNn(t, 2)
MM(xxx, yyy) = 1
NNn(t, 1) = 0
NNn(t, 2) = 0
Next t
JG = False
End If
End Sub
Sub DoWithAc1() 'opu''
Dim Nn(1 To 4, 1 To 2) As Integer
Dim weree As Boolean
weree = True
Dim RRX, RRY As Integer
RRX = NNn(1, 1)
RRY = NNn(1, 2)
Select Case FType
Case 1
'''''''''''''''''''''''''''''''''''''''''''''''
Select Case FTypeE
Case 1
Nn(1, 1) = 4 'o
Nn(1, 2) = 1 '''''ooo
Nn(2, 1) = 4
Nn(2, 2) = 2
Nn(3, 1) = 4
Nn(3, 2) = 3
Nn(4, 1) = 5
Nn(4, 2) = 2
Case 2
Nn(1, 1) = 4 'o
Nn(1, 2) = 1 '''''ooo
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 6
Nn(3, 2) = 1
Nn(4, 1) = 5
Nn(4, 2) = 2
Case 3
Nn(1, 1) = 5 'o
Nn(1, 2) = 1 '''''ooo
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 3
Nn(4, 1) = 4
Nn(4, 2) = 2
Case 4
Nn(1, 1) = 5 'o
Nn(1, 2) = 1 '''''ooo
Nn(2, 1) = 4
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 2
End Select
''''''''''''''''''''''''''''''''''''''''''''''''''
Case 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Select Case FTypeE
Case 1
Nn(1, 1) = 5
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 3
Nn(4, 1) = 5
Nn(4, 2) = 4
Case 3
Nn(1, 1) = 5
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 3
Nn(4, 1) = 5
Nn(4, 2) = 4
Case 2
Nn(1, 1) = 4
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 6
Nn(3, 2) = 1
Nn(4, 1) = 7
Nn(4, 2) = 1
Case 4
Nn(1, 1) = 4
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 6
Nn(3, 2) = 1
Nn(4, 1) = 7
Nn(4, 2) = 1
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 3
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Select Case FTypeE
Case 2
Nn(1, 1) = 4 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 2
Case 4
Nn(1, 1) = 4 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 2
Case 1
Nn(1, 1) = 5 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 4
Nn(3, 2) = 2
Nn(4, 1) = 4
Nn(4, 2) = 3
Case 3
Nn(1, 1) = 5 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 4
Nn(3, 2) = 2
Nn(4, 1) = 4
Nn(4, 2) = 3
End Select
''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 4
''''''''''''''''''''''''''''''''''''''''''''''''''''
Select Case FTypeE
Case 2
Nn(1, 1) = 4 ''oo
Nn(1, 2) = 2
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 1
Nn(4, 1) = 6
Nn(4, 2) = 1
Case 4
Nn(1, 1) = 6 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 1
Nn(4, 1) = 4
Nn(4, 2) = 2
Case 1
Nn(1, 1) = 5 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 6
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 3
Case 3
Nn(1, 1) = 5 ''oo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 6
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 3
End Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 5
'''''''''''''''''''''''''''''''''''''''''''''
Select Case FTypeE
Case 1
Nn(1, 1) = 4 ''ooo
Nn(1, 2) = 1
Nn(2, 1) = 4
Nn(2, 2) = 2
Nn(3, 1) = 4
Nn(3, 2) = 3
Nn(4, 1) = 5
Nn(4, 2) = 3
Case 2
Nn(1, 1) = 4 ''ooo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 6
Nn(3, 2) = 1
Nn(4, 1) = 4
Nn(4, 2) = 2
Case 3
Nn(1, 1) = 4 ''ooo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 5
Nn(4, 2) = 3
Case 4
Nn(1, 1) = 6 ''ooo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 2
Nn(3, 1) = 6
Nn(3, 2) = 2
Nn(4, 1) = 4
Nn(4, 2) = 2
End Select
'''''''''''''''''''''''''''''''''''''''''''''''
Case 6
'''''''''''''''''''''''''''''''''''''''''''
Select Case FTypeE
Case 1
Nn(1, 1) = 4 'ooo
Nn(1, 2) = 1
Nn(2, 1) = 4
Nn(2, 2) = 2
Nn(3, 1) = 4
Nn(3, 2) = 3
Nn(4, 1) = 5
Nn(4, 2) = 1
Case 2
Nn(1, 1) = 4 'ooo
Nn(1, 2) = 1
Nn(2, 1) = 5
Nn(2, 2) = 1
Nn(3, 1) = 6
Nn(3, 2) = 1
Nn(4, 1) = 6
Nn(4, 2) = 2
Case 3
Nn(1, 1) = 5 'ooo
Nn(1, 2) = 1
Nn(2, 1) = 4
Nn(2, 2) = 3
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 5
Nn(4, 2) = 3
Case 4
Nn(1, 1) = 4 'ooo
Nn(1, 2) = 1
Nn(2, 1) = 4
Nn(2, 2) = 2
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 2
End Select
''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''
Case 7
Nn(1, 1) = 5 'oo
Nn(1, 2) = 1
Nn(2, 1) = 6
Nn(2, 2) = 1
Nn(3, 1) = 5
Nn(3, 2) = 2
Nn(4, 1) = 6
Nn(4, 2) = 2
End Select
Dim XdI As Integer, YdI As Integer
XdI = NNn(1, 1) - Nn(1, 1)
YdI = NNn(1, 2) - Nn(1, 2)
For uy = 1 To 4
Nn(uy, 1) = Nn(uy, 1) + XdI
Nn(uy, 2) = Nn(uy, 2) + YdI
Next uy
''''''''''''''''''''''''''''''''''''
For h = 1 To 4
If Nn(h, 1) < 1 Or Nn(h, 1) > 10 Or Nn(h, 2) < 1 Or Nn(h, 2) > 15 Then
weree = False
GoTo ee
End If
Next h
For tt = 1 To 4
Dim xx, yy
xx = Nn(tt, 1)
yy = Nn(tt, 2)
If MM(xx, yy) = 1 Then weree = False
Next tt
ee:
If weree = True Then
For t = 1 To 4
Dim xe, ye
xe = NNn(t, 1)
ye = NNn(t, 2)
MM(xe, ye) = 0
Next t
For ryry = 1 To 4
NNn(ryry, 1) = Nn(ryry, 1)
NNn(ryry, 2) = Nn(ryry, 2)
Next ryry
For ep = 1 To 4
Dim xz, yz
xz = NNn(ep, 1)
yz = NNn(ep, 2)
MM(xz, yz) = 2
Next ep
If FTypeE < 4 Then
FTypeE = FTypeE + 1
Else
FTypeE = 1
End If
End If
''''''''''''''''
End Sub
Sub DoWithActiOn()
On Error Resume Next
If Timer1.Enabled = False Then Exit Sub
Select Case ActiOn
Case 1 'key up 的事件
DoWithAc1
Case 3 'key left 的事件
Dim ee As Boolean
ee = False
For t = 1 To 4
Dim xe, ye
xe = NNn(t, 1)
ye = NNn(t, 2)
MM(xe, ye) = 0
Next t
For i = 1 To 4
If NNn(i, 1) = 1 Then
ee = True
Else
Dim xx, yy
xx = NNn(i, 1)
yy = NNn(i, 2)
If MM(xx - 1, yy) = 1 Then ee = True
End If
Next i
If ee = False Then
For u = 1 To 4
NNn(u, 1) = NNn(u, 1) - 1
Next u
End If
For tt = 1 To 4
Dim xee, yee
xee = NNn(tt, 1)
yee = NNn(tt, 2)
MM(xee, yee) = 2
Next tt
Case 4 'key right 的事件
Dim eew As Boolean
eew = False
For tk = 1 To 4
Dim xek, yek
xek = NNn(tk, 1)
yek = NNn(tk, 2)
MM(xek, yek) = 0
Next tk
For ii = 1 To 4
If NNn(ii, 1) = 10 Then
eew = True
Else
Dim xxx, yyy
xxx = NNn(ii, 1)
yyy = NNn(ii, 2)
If MM(xxx + 1, yyy) = 1 Then eew = True
End If
Next ii
If eew = False Then
For uu = 1 To 4
NNn(uu, 1) = NNn(uu, 1) + 1
Next uu
End If
For ttk = 1 To 4
Dim xeek, yeek
xeek = NNn(ttk, 1)
yeek = NNn(ttk, 2)
MM(xeek, yeek) = 2
Next ttk
Case 2 'key down 的事件
Dim eewk As Boolean
eewk = False
For tkk = 1 To 4
Dim xekk, yekk
xekk = NNn(tkk, 1)
yekk = NNn(tkk, 2)
MM(xekk, yekk) = 0
Next tkk
For iik = 1 To 4
If NNn(iik, 2) = 15 Then
eewk = True
Else
Dim xxxk, yyyk
xxxk = NNn(iik, 1)
yyyk = NNn(iik, 2)
If MM(xxxk, yyyk + 1) = 1 Then eewk = True
End If
Next iik
If eewk = False Then
For uuk = 1 To 4
NNn(uuk, 2) = NNn(uuk, 2) + 1
Next uuk
End If
For ttkk = 1 To 4
Dim xeekk, yeekk
xeekk = NNn(ttkk, 1)
yeekk = NNn(ttkk, 2)
MM(xeekk, yeekk) = 2
Next ttkk
End Select
ActiOn = 0
End Sub
Sub Gscore()
Label2.Caption = "Score:" & Str(Score) & vbCrLf & "Speed:" & Str(Speed) & vbCrLf & "Round:" & Str(Rou)
End Sub
Sub XiaoX() ''''''''''''''''''''''''A BIG PROBLEM
For i = 1 To 15
Dim wer As Boolean
wer = True
For j = 1 To 10
If MM(j, i) <> 1 Then wer = False
Next j
If wer = True Then
Score = Score + 1
Gscore
For k = i To 2 Step -1
For u = 1 To 10
MM(u, k) = MM(u, k - 1)
Next u
Next k
For tt = 1 To 10
MM(1, tt) = 0
Next tt
Dui
End If
Next i
End Sub
Sub IsLose()
Dim er As Boolean
er = True
For i = 1 To 10
If MM(i, 3) = 1 Then er = False
Next i
If er = False Then
Timer1.Enabled = False
ToZero
MsgBox "You Lose!!!!"
End If
End Sub
Private Sub Timer1_Timer()
If JG = False Then
MakeAN
JG = True
End If
Dui
PaiRu
'XiaoX
IsLose
End Sub