Public Cube(6, 4) As String    '定义方块形状
Public intCube(4, 4) As Integer   '用4x4的数组纪录当前方块形状
Public intTryCube(4, 4) As Integer '下个位置试图出现的方块形状
Public intnextCube(4, 4) As Integer  '下一个方块的形状
Public intONcube(4, 4) As Integer '“下一个”提示框中的上一个方块形状
Public intNowcube As Integer  '当前的方框种类
Public intNcube As Integer  '下一个方框种类
Public intNowform As Integer '当前方框的形式
Public intNform As Integer '下一个方框的形式
Public intNowX As Integer '当前方框的显示位置横坐标
Public intNowY As Integer '..................纵....
Public intWidth As Integer '游戏区宽度,既一排可显示的方框数
Public intHeight As Integer '......高........列..............
Public intNew As Integer '是否为新下落的方块,用以决定是否擦除上一个方块
Sub defineCube() '方块形状
    Cube(0, 1) = "11121314"
    Cube(0, 2) = "12223242"
    Cube(0, 3) = "11121314"
    Cube(0, 4) = "12223242"
    Cube(1, 1) = "12212223"
    Cube(1, 2) = "12222332"
    Cube(1, 3) = "11121322"
    Cube(1, 4) = "12212232"
    Cube(2, 1) = "11212223"
    Cube(2, 2) = "12132232"
    Cube(2, 3) = "11121323"
    Cube(2, 4) = "13233233"
    Cube(3, 1) = "13212223"
    Cube(3, 2) = "12223233"
    Cube(3, 3) = "11121321"
    Cube(3, 4) = "12132333"
    Cube(4, 1) = "11122223"
    Cube(4, 2) = "13222332"
    Cube(4, 3) = "11122223"
    Cube(4, 4) = "13222332"
    Cube(5, 1) = "12132122"
    Cube(5, 2) = "12222333"
    Cube(5, 3) = "12132122"
    Cube(5, 4) = "12222333"
End Sub
Sub StoI(strS As String, Mode As Integer)
    Dim i, j As Integer
    If Mode = 0 Then
       For i = 1 To 4
          For j = 1 To 4
             intCube(i, j) = 0
          Next j
       Next i
       For i = 1 To 7 Step 2
          intCube(Int(Mid(strS, i, 1)), Int(Mid(strS, i + 1, 1))) = 1
       Next i
    Else
       If Mode = 2 Then
          For i = 1 To 4
             For j = 1 To 4
                intTryCube(i, j) = 0
             Next j
          Next i
          For i = 1 To 7 Step 2
             intTryCube(Int(Mid(strS, i, 1)), Int(Mid(strS, i + 1, 1))) = 1
          Next i
       Else
          For i = 1 To 4
             For j = 1 To 4
                intnextCube(i, j) = 0
             Next j
          Next i
          For i = 1 To 7 Step 2
             intnextCube(Int(Mid(strS, i, 1)), Int(Mid(strS, i + 1, 1))) = 1
          Next i
       End If
    End If
End Sub
Sub gameInit()
    Dim i As Integer
    For i = 0 To frmMain.shpCube.ubound
       frmMain.shpCube(i).Visible = False
    Next i
       Randomize
       intNowX = 3
       intNowY = 0
       intNowcube = Int(Rnd * 6)
       intNowform = Int(Rnd * 4) + 1
    Call StoI(Cube(intNowcube, intNowform), 0)
       Randomize
       intNcube = Int(Rnd * 6)
       intNform = Int(Rnd * 4) + 1
    Call nextDisplay(intNcube, intNform)
    frmMain.KeyPreview = True
    frmMain.Label2.Visible = False
End Sub
Function cubeDisplay(X As Integer, Y As Integer, shape As Integer, cubeForm As Integer, Mode As Integer) As Integer
    Dim i, j, n As Integer
    Dim a As Integer             'mode=1:change mode=0:down
    a = 1
    StoI Cube(intNowcube, intNowform), 0
    If intNew <> 1 Then
       For i = 1 To 4
          For j = 1 To 4
             If intCube(i, j) = 1 Then
                n = (intNowY + i - 1) * intWidth + intNowX + j - 1
                frmMain.shpCube(n).Visible = False
             End If
          Next j
       Next i
    End If
     StoI Cube(shape, cubeForm), 2
    For i = 1 To 4
       For j = 1 To 4
          If intTryCube(i, j) = 1 Then
             If i + Y > intHeight Then
                a = -1
                GoTo out
             End If
             If Mode = 1 Then
                If j + X > intWidth Then
                   a = 0
                   GoTo out
                End If
                If j + X < 1 Then
                   a = 0
                   GoTo out
                End If
                n = (Y + i - 1) * intWidth + X + j - 1
                If frmMain.shpCube(n).Visible = True Then
                   a = 0
                   GoTo out
                End If
             Else
                n = (Y + i - 1) * intWidth + X + j - 1
                If frmMain.shpCube(n).Visible = True Then
                   a = -1
                   GoTo out
                 End If
             End If
          End If
       Next j
    Next i
out:
    If a = 1 Then
       StoI Cube(shape, cubeForm), 0
       For i = 1 To 4
          For j = 1 To 4
             If intCube(i, j) = 1 Then
                n = (Y + i - 1) * intWidth + X + j - 1
                frmMain.shpCube(n).Visible = True
             End If
          Next j
       Next i
       intNowX = X
       intNowY = Y
       intNowform = cubeForm
    Else
       For i = 1 To 4
          For j = 1 To 4
             If intCube(i, j) = 1 Then
                n = (intNowY + i - 1) * intWidth + intNowX + j - 1
                frmMain.shpCube(n).Visible = True
             End If
          Next j
       Next i
    End If
    cubeDisplay = a
End Function
Sub nextDisplay(shape As Integer, cubeForm As Integer)
    Dim i, j, n As Integer
    StoI Cube(shape, cubeForm), 1
       For i = 1 To 4
          For j = 1 To 4
             If intONcube(i, j) = 1 Then
                n = (i - 1) * 4 + j - 1
                frmMain.Shape1(n).Visible = False
             End If
          Next j
       Next i
       For i = 1 To 4
          For j = 1 To 4
             If intnextCube(i, j) = 1 Then
                n = (i - 1) * 4 + j - 1
                frmMain.Shape1(n).Visible = True
             End If
          Next j
       Next i
       For i = 1 To 4
          For j = 1 To 4
             intONcube(i, j) = intnextCube(i, j)
          Next j
       Next i
End Sub
Sub clearRow()
    Dim i, j, n, k, m As Integer
    Dim ok As Integer
       For i = 0 To intHeight - 1
          ok = 1
          For j = 0 To intWidth - 1
             n = i * intWidth + j
             If frmMain.shpCube(n).Visible = False Then
                ok = 0
                Exit For
             End If
          Next j
          If ok = 1 Then
             
             For k = i To 1 Step -1
                For m = 0 To intWidth - 1
                   n = k * intWidth + m
                   frmMain.shpCube(n).Visible = frmMain.shpCube(n - 10).Visible
                Next m
             Next k
          End If
       Next i
    End Sub
版主能帮我解说一下这些语句的意思吗?我是新学的.!!麻烦一下了.!~~
Private Sub Form_Load()
    Dim i, intH, intW As Integer
    For i = 0 To 199
       If i > 0 Then Load shpCube(i)
       intWidth = 10
       intHeight = 20
[此贴子已经被作者于2006-1-3 16:09:48编辑过]



											
	    

	
										
					
	