⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 得用Visual Basic编写的小游戏-俄罗斯方块。
💻 FRM
📖 第 1 页 / 共 3 页
字号:
            If blnBlock(intTypeCur, intOrieCur, j, i) And i + intXCur >= 9 Then Exit Sub    '禁止超出右边界
        Next
    Next
    intXNext = intXNext + 1

End Sub
Private Sub Rotate()                                     '旋转
    Dim i As Integer, j As Integer
    Dim intTempNext As Integer
    
    If blnClockWise Then                             '临时产生下一个方位,检测是否超出范围,或重叠
        intTempNext = intOrieNext - 1
        If intTempNext = -1 Then intTempNext = 3
    Else
        intTempNext = intOrieNext + 1
        If intTempNext = 4 Then intTempNext = 0
    End If
    
    
    For i = 3 To 0 Step -1
        For j = 0 To 3
            If blnBlock(intTypeCur, intTempNext, j, i) And i + intXCur > 9 Then Exit Sub    '禁止超出右边界
            If blnBlock(intTypeCur, intTempNext, j, i) And i + intXCur < 0 Then Exit Sub    '禁止超出左边界
            If blnBlock(intTypeCur, intTempNext, j, i) And j + intYCur > 19 Then Exit Sub   '禁止超出下边界
            If blnBlock(intTypeCur, intTempNext, j, i) And j + intYCur < 0 Then Exit Sub    '禁止超出上边界
            
            If j + intYCur >= 0 And j + intYCur <= 19 And i + intXCur >= 0 And i + intXCur <= 9 Then
                If blnBlock(intTypeCur, intTempNext, j, i) And blnGrid(j + intYCur, i + intXCur) Then Exit Sub  '禁止重叠
            End If
        Next
    Next
    
    intOrieCur = intOrieNext
    intOrieNext = intTempNext
'    intOrieNext = intOrieNext - 1
'    If intOrieNext = -1 Then intOrieNext = 3
End Sub


Private Sub QuickDown()
    Dim i As Integer, j As Integer, k As Integer
    Do
        For i = 3 To 0 Step -1
            For j = 0 To 3
                If blnBlock(intTypeCur, intOrieCur, i, j) And (i + intYCur + k >= 19) Then Exit For '超出下边界
                If Not (i + intYCur + 1 + k < 0 Or i + intYCur + 1 + k > 19 Or j + intXCur < 0 Or j + intXCur > 9) Then '如果下边遇到方块
                    If blnBlock(intTypeCur, intOrieCur, i, j) And (blnGrid(i + intYCur + 1 + k, j + intXCur)) Then
                        Exit For
                    End If
                End If
            Next
            If j <= 3 Then Exit For
        Next
        If i >= 0 Then Exit Do
        If k = intDownDistance Then Exit Do
        
        k = k + 1
    Loop
    intYNext = intYNext + k
    Call ShowBlock

End Sub
Private Sub Score()
    Dim i As Integer, j As Integer, k As Integer, num As Integer
    For i = 19 To 0 Step -1
        For j = 0 To 9
            If Not blnGrid(i, j) Then Exit For
        Next
        If j > 9 Then
            num = num + 1
            For k = i To 1 Step -1
                For j = 0 To 9
                    blnGrid(k, j) = blnGrid(k - 1, j)
                    lngColor(k, j) = lngColor(k - 1, j)
                Next
            Next
            k = 0
            For j = 0 To 9
                blnGrid(k, j) = False
                lngColor(k, j) = False
            Next
            i = i + 1
        End If
    Next
    
    If num > 0 Then
        Select Case num
            Case 1
                lngScore = lngScore + 100
            Case 2
                lngScore = lngScore + 300
            Case 3
                lngScore = lngScore + 700
            Case 4
               lngScore = lngScore + 1500
        End Select
        txtScore.Text = lngScore
        txtSpeed = lngScore \ 2000 + 1
        Timer1.Interval = 300 - txtSpeed * 27
        Call Form_Activate
     End If
End Sub
Private Sub ShowNext()
    Dim i As Integer, j As Integer
    If blnShowNext Then
         For i = 0 To 3
            For j = 0 To 3
                If blnBlock(intTypeNew, intOrieNew, i, j) Then
                    picNext.Line (j * 20 + 2, i * 20 + 2)-(j * 20 + 19, i * 20 + 19), lngColorNew, B
                    picNext.Line (j * 20 + 4, i * 20 + 4)-(j * 20 + 17, i * 20 + 17), lngColorNew, BF
                Else
                    picNext.Line (j * 20 + 2, i * 20 + 2)-(j * 20 + 19, i * 20 + 19), vbBlack, B
                    picNext.Line (j * 20 + 4, i * 20 + 4)-(j * 20 + 17, i * 20 + 17), vbWhite, BF
                End If
            Next
        Next
    End If
End Sub
Private Sub Form_Load()
    If Dir(App.Path & "\block.dat") <> "" Then
        Open App.Path & "\block.dat" For Input As 1
        Input #1, intDownDistance, blnClockWise, blnShowNext, blnScheme, lngHighScore
        Close 1
    Else
         intDownDistance = 20
         blnClockWise = True
         blnShowNext = True
         blnScheme = True
         lngHighScore = 0
    End If
    txtHigh.Text = lngHighScore
    
    
'I 型方块数据
    blnBlock(0, 0, 0, 0) = False: blnBlock(0, 0, 0, 1) = False: blnBlock(0, 0, 0, 2) = True:  blnBlock(0, 0, 0, 3) = False
    blnBlock(0, 0, 1, 0) = False: blnBlock(0, 0, 1, 1) = False: blnBlock(0, 0, 1, 2) = True:  blnBlock(0, 0, 1, 3) = False
    blnBlock(0, 0, 2, 0) = False: blnBlock(0, 0, 2, 1) = False: blnBlock(0, 0, 2, 2) = True:  blnBlock(0, 0, 2, 3) = False
    blnBlock(0, 0, 3, 0) = False: blnBlock(0, 0, 3, 1) = False: blnBlock(0, 0, 3, 2) = True:  blnBlock(0, 0, 3, 3) = False
    
    blnBlock(0, 1, 0, 0) = False: blnBlock(0, 1, 0, 1) = False: blnBlock(0, 1, 0, 2) = False: blnBlock(0, 1, 0, 3) = False
    blnBlock(0, 1, 1, 0) = True:  blnBlock(0, 1, 1, 1) = True:  blnBlock(0, 1, 1, 2) = True:  blnBlock(0, 1, 1, 3) = True
    blnBlock(0, 1, 2, 0) = False: blnBlock(0, 1, 2, 1) = False: blnBlock(0, 1, 2, 2) = False: blnBlock(0, 1, 2, 3) = False
    blnBlock(0, 1, 3, 0) = False: blnBlock(0, 1, 3, 1) = False: blnBlock(0, 1, 3, 2) = False: blnBlock(0, 1, 3, 3) = False

    blnBlock(0, 2, 0, 0) = False: blnBlock(0, 2, 0, 1) = False: blnBlock(0, 2, 0, 2) = True:  blnBlock(0, 2, 0, 3) = False
    blnBlock(0, 2, 1, 0) = False: blnBlock(0, 2, 1, 1) = False: blnBlock(0, 2, 1, 2) = True:  blnBlock(0, 2, 1, 3) = False
    blnBlock(0, 2, 2, 0) = False: blnBlock(0, 2, 2, 1) = False: blnBlock(0, 2, 2, 2) = True:  blnBlock(0, 2, 2, 3) = False
    blnBlock(0, 2, 3, 0) = False: blnBlock(0, 2, 3, 1) = False: blnBlock(0, 2, 3, 2) = True:  blnBlock(0, 2, 3, 3) = False
    
    blnBlock(0, 3, 0, 0) = False: blnBlock(0, 3, 0, 1) = False: blnBlock(0, 3, 0, 2) = False: blnBlock(0, 3, 0, 3) = False
    blnBlock(0, 3, 1, 0) = False:  blnBlock(0, 3, 1, 1) = False:  blnBlock(0, 3, 1, 2) = False:  blnBlock(0, 3, 1, 3) = False
    blnBlock(0, 3, 2, 0) = True: blnBlock(0, 3, 2, 1) = True: blnBlock(0, 3, 2, 2) = True: blnBlock(0, 3, 2, 3) = True
    blnBlock(0, 3, 3, 0) = False: blnBlock(0, 3, 3, 1) = False: blnBlock(0, 3, 3, 2) = False: blnBlock(0, 3, 3, 3) = False

'反L 型方块数据
    blnBlock(1, 0, 0, 0) = False: blnBlock(1, 0, 0, 1) = True: blnBlock(1, 0, 0, 2) = True:    blnBlock(1, 0, 0, 3) = True
    blnBlock(1, 0, 1, 0) = False: blnBlock(1, 0, 1, 1) = False: blnBlock(1, 0, 1, 2) = False:  blnBlock(1, 0, 1, 3) = True
    blnBlock(1, 0, 2, 0) = False: blnBlock(1, 0, 2, 1) = False: blnBlock(1, 0, 2, 2) = False:  blnBlock(1, 0, 2, 3) = False
    blnBlock(1, 0, 3, 0) = False: blnBlock(1, 0, 3, 1) = False: blnBlock(1, 0, 3, 2) = False:  blnBlock(1, 0, 3, 3) = False
    
    blnBlock(1, 1, 0, 0) = False: blnBlock(1, 1, 0, 1) = False: blnBlock(1, 1, 0, 2) = True:  blnBlock(1, 1, 0, 3) = True
    blnBlock(1, 1, 1, 0) = False: blnBlock(1, 1, 1, 1) = False: blnBlock(1, 1, 1, 2) = True:  blnBlock(1, 1, 1, 3) = False
    blnBlock(1, 1, 2, 0) = False: blnBlock(1, 1, 2, 1) = False: blnBlock(1, 1, 2, 2) = True:  blnBlock(1, 1, 2, 3) = False
    blnBlock(1, 1, 3, 0) = False: blnBlock(1, 1, 3, 1) = False: blnBlock(1, 1, 3, 2) = False: blnBlock(1, 1, 3, 3) = False

    blnBlock(1, 2, 0, 0) = False: blnBlock(1, 2, 0, 1) = True:  blnBlock(1, 2, 0, 2) = False:  blnBlock(1, 2, 0, 3) = False
    blnBlock(1, 2, 1, 0) = False: blnBlock(1, 2, 1, 1) = True:  blnBlock(1, 2, 1, 2) = True:   blnBlock(1, 2, 1, 3) = True
    blnBlock(1, 2, 2, 0) = False: blnBlock(1, 2, 2, 1) = False: blnBlock(1, 2, 2, 2) = False:  blnBlock(1, 2, 2, 3) = False
    blnBlock(1, 2, 3, 0) = False: blnBlock(1, 2, 3, 1) = False: blnBlock(1, 2, 3, 2) = False:  blnBlock(1, 2, 3, 3) = False
    
    blnBlock(1, 3, 0, 0) = False: blnBlock(1, 3, 0, 1) = False: blnBlock(1, 3, 0, 2) = False: blnBlock(1, 3, 0, 3) = True
    blnBlock(1, 3, 1, 0) = False: blnBlock(1, 3, 1, 1) = False: blnBlock(1, 3, 1, 2) = False: blnBlock(1, 3, 1, 3) = True
    blnBlock(1, 3, 2, 0) = False: blnBlock(1, 3, 2, 1) = False: blnBlock(1, 3, 2, 2) = True:  blnBlock(1, 3, 2, 3) = True
    blnBlock(1, 3, 3, 0) = False: blnBlock(1, 3, 3, 1) = False: blnBlock(1, 3, 3, 2) = False: blnBlock(1, 3, 3, 3) = False

'正L型方块数据
    blnBlock(2, 0, 0, 0) = False: blnBlock(2, 0, 0, 1) = True: blnBlock(2, 0, 0, 2) = True: blnBlock(2, 0, 0, 3) = True
    blnBlock(2, 0, 1, 0) = False: blnBlock(2, 0, 1, 1) = True: blnBlock(2, 0, 1, 2) = False: blnBlock(2, 0, 1, 3) = False
    blnBlock(2, 0, 2, 0) = False: blnBlock(2, 0, 2, 1) = False: blnBlock(2, 0, 2, 2) = False: blnBlock(2, 0, 2, 3) = False
    blnBlock(2, 0, 3, 0) = False: blnBlock(2, 0, 3, 1) = False: blnBlock(2, 0, 3, 2) = False: blnBlock(2, 0, 3, 3) = False
    
    blnBlock(2, 1, 0, 0) = False: blnBlock(2, 1, 0, 1) = False: blnBlock(2, 1, 0, 2) = True: blnBlock(2, 1, 0, 3) = False
    blnBlock(2, 1, 1, 0) = False: blnBlock(2, 1, 1, 1) = False: blnBlock(2, 1, 1, 2) = True: blnBlock(2, 1, 1, 3) = False
    blnBlock(2, 1, 2, 0) = False: blnBlock(2, 1, 2, 1) = False: blnBlock(2, 1, 2, 2) = True: blnBlock(2, 1, 2, 3) = True
    blnBlock(2, 1, 3, 0) = False: blnBlock(2, 1, 3, 1) = False: blnBlock(2, 1, 3, 2) = False: blnBlock(2, 1, 3, 3) = False
    
    blnBlock(2, 2, 0, 0) = False: blnBlock(2, 2, 0, 1) = False: blnBlock(2, 2, 0, 2) = False: blnBlock(2, 2, 0, 3) = True
    blnBlock(2, 2, 1, 0) = False: blnBlock(2, 2, 1, 1) = True: blnBlock(2, 2, 1, 2) = True: blnBlock(2, 2, 1, 3) = True
    blnBlock(2, 2, 2, 0) = False: blnBlock(2, 2, 2, 1) = False: blnBlock(2, 2, 2, 2) = False: blnBlock(2, 2, 2, 3) = False
    blnBlock(2, 2, 3, 0) = False: blnBlock(2, 2, 3, 1) = False: blnBlock(2, 2, 3, 2) = False: blnBlock(2, 2, 3, 3) = False
    
    blnBlock(2, 3, 0, 0) = False: blnBlock(2, 3, 0, 1) = False: blnBlock(2, 3, 0, 2) = True: blnBlock(2, 3, 0, 3) = True
    blnBlock(2, 3, 1, 0) = False: blnBlock(2, 3, 1, 1) = False: blnBlock(2, 3, 1, 2) = False: blnBlock(2, 3, 1, 3) = True
    blnBlock(2, 3, 2, 0) = False: blnBlock(2, 3, 2, 1) = False: blnBlock(2, 3, 2, 2) = False: blnBlock(2, 3, 2, 3) = True
    blnBlock(2, 3, 3, 0) = False: blnBlock(2, 3, 3, 1) = False: blnBlock(2, 3, 3, 2) = False: blnBlock(2, 3, 3, 3) = False

'T型方块数据
    blnBlock(3, 0, 0, 0) = False: blnBlock(3, 0, 0, 1) = True: blnBlock(3, 0, 0, 2) = True: blnBlock(3, 0, 0, 3) = True
    blnBlock(3, 0, 1, 0) = False: blnBlock(3, 0, 1, 1) = False: blnBlock(3, 0, 1, 2) = True: blnBlock(3, 0, 1, 3) = False
    blnBlock(3, 0, 2, 0) = False: blnBlock(3, 0, 2, 1) = False: blnBlock(3, 0, 2, 2) = False: blnBlock(3, 0, 2, 3) = False
    blnBlock(3, 0, 3, 0) = False: blnBlock(3, 0, 3, 1) = False: blnBlock(3, 0, 3, 2) = False: blnBlock(3, 0, 3, 3) = False
    
    blnBlock(3, 1, 0, 0) = False: blnBlock(3, 1, 0, 1) = False: blnBlock(3, 1, 0, 2) = True: blnBlock(3, 1, 0, 3) = False
    blnBlock(3, 1, 1, 0) = False: blnBlock(3, 1, 1, 1) = False: blnBlock(3, 1, 1, 2) = True: blnBlock(3, 1, 1, 3) = True
    blnBlock(3, 1, 2, 0) = False: blnBlock(3, 1, 2, 1) = False: blnBlock(3, 1, 2, 2) = True: blnBlock(3, 1, 2, 3) = False
    blnBlock(3, 1, 3, 0) = False: blnBlock(3, 1, 3, 1) = False: blnBlock(3, 1, 3, 2) = False: blnBlock(3, 1, 3, 3) = False

    blnBlock(3, 2, 0, 0) = False: blnBlock(3, 2, 0, 1) = False: blnBlock(3, 2, 0, 2) = True: blnBlock(3, 2, 0, 3) = False
    blnBlock(3, 2, 1, 0) = False: blnBlock(3, 2, 1, 1) = True: blnBlock(3, 2, 1, 2) = True: blnBlock(3, 2, 1, 3) = True
    blnBlock(3, 2, 2, 0) = False: blnBlock(3, 2, 2, 1) = False: blnBlock(3, 2, 2, 2) = False: blnBlock(3, 2, 2, 3) = False
    blnBlock(3, 2, 3, 0) = False: blnBlock(3, 2, 3, 1) = False: blnBlock(3, 2, 3, 2) = False: blnBlock(3, 2, 3, 3) = False
    
    blnBlock(3, 3, 0, 0) = False: blnBlock(3, 3, 0, 1) = False: blnBlock(3, 3, 0, 2) = True: blnBlock(3, 3, 0, 3) = False
    blnBlock(3, 3, 1, 0) = False: blnBlock(3, 3, 1, 1) = True: blnBlock(3, 3, 1, 2) = True: blnBlock(3, 3, 1, 3) = False
    blnBlock(3, 3, 2, 0) = False: blnBlock(3, 3, 2, 1) = False: blnBlock(3, 3, 2, 2) = True: blnBlock(3, 3, 2, 3) = False
    blnBlock(3, 3, 3, 0) = False: blnBlock(3, 3, 3, 1) = False: blnBlock(3, 3, 3, 2) = False: blnBlock(3, 3, 3, 3) = False

'方块型数据
    blnBlock(4, 0, 0, 0) = False: blnBlock(4, 0, 0, 1) = True: blnBlock(4, 0, 0, 2) = True: blnBlock(4, 0, 0, 3) = False
    blnBlock(4, 0, 1, 0) = False: blnBlock(4, 0, 1, 1) = True: blnBlock(4, 0, 1, 2) = True: blnBlock(4, 0, 1, 3) = False
    blnBlock(4, 0, 2, 0) = False: blnBlock(4, 0, 2, 1) = False: blnBlock(4, 0, 2, 2) = False: blnBlock(4, 0, 2, 3) = False
    blnBlock(4, 0, 3, 0) = False: blnBlock(4, 0, 3, 1) = False: blnBlock(4, 0, 3, 2) = False: blnBlock(4, 0, 3, 3) = False
    
    blnBlock(4, 1, 0, 0) = False: blnBlock(4, 1, 0, 1) = True: blnBlock(4, 1, 0, 2) = True: blnBlock(4, 1, 0, 3) = False
    blnBlock(4, 1, 1, 0) = False: blnBlock(4, 1, 1, 1) = True: blnBlock(4, 1, 1, 2) = True: blnBlock(4, 1, 1, 3) = False
    blnBlock(4, 1, 2, 0) = False: blnBlock(4, 1, 2, 1) = False: blnBlock(4, 1, 2, 2) = False: blnBlock(4, 1, 2, 3) = False
    blnBlock(4, 1, 3, 0) = False: blnBlock(4, 1, 3, 1) = False: blnBlock(4, 1, 3, 2) = False: blnBlock(4, 1, 3, 3) = False

    blnBlock(4, 2, 0, 0) = False: blnBlock(4, 2, 0, 1) = True: blnBlock(4, 2, 0, 2) = True: blnBlock(4, 2, 0, 3) = False
    blnBlock(4, 2, 1, 0) = False: blnBlock(4, 2, 1, 1) = True: blnBlock(4, 2, 1, 2) = True: blnBlock(4, 2, 1, 3) = False
    blnBlock(4, 2, 2, 0) = False: blnBlock(4, 2, 2, 1) = False: blnBlock(4, 2, 2, 2) = False: blnBlock(4, 2, 2, 3) = False
    blnBlock(4, 2, 3, 0) = False: blnBlock(4, 2, 3, 1) = False: blnBlock(4, 2, 3, 2) = False: blnBlock(4, 2, 3, 3) = False
    
    blnBlock(4, 3, 0, 0) = False: blnBlock(4, 3, 0, 1) = True: blnBlock(4, 3, 0, 2) = True: blnBlock(4, 3, 0, 3) = False
    blnBlock(4, 3, 1, 0) = False: blnBlock(4, 3, 1, 1) = True: blnBlock(4, 3, 1, 2) = True: blnBlock(4, 3, 1, 3) = False
    blnBlock(4, 3, 2, 0) = False: blnBlock(4, 3, 2, 1) = False: blnBlock(4, 3, 2, 2) = False: blnBlock(4, 3, 2, 3) = False
    blnBlock(4, 3, 3, 0) = False: blnBlock(4, 3, 3, 1) = False: blnBlock(4, 3, 3, 2) = False: blnBlock(4, 3, 3, 3) = False



End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -