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

📄 vbtris32.bas

📁 一个很好的VB程序
💻 BAS
📖 第 1 页 / 共 5 页
字号:
                        Board.Square(I, Board.PieceY + 1) = 3
                    Next
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX + 1, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX, Board.PieceY + 2) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0
                    Board.Square(Board.PieceX, Board.PieceY + 2) = 3
                    Board.Square(Board.PieceX + 1, Board.PieceY + 2) = 3
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 3 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                    For I = Board.PieceX - 1 To Board.PieceX + 1
                        Board.Square(I, Board.PieceY) = 0
                        If I <> Board.PieceX - 1 Then Board.Square(I, Board.PieceY + 1) = 3
                    Next
                    Board.Square(Board.PieceX - 1, Board.PieceY + 2) = 3
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 4 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX, Board.PieceY + 2) = 3
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 3
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        End If
    Case 4
        If Board.PiecePos = 1 Then
            If Board.PieceY <= 17 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY) = 0 And Board.Square(Board.PieceX, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 4
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 4
                    Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 4
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX, Board.PieceY) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 4
                    Board.Square(Board.PieceX, Board.PieceY + 2) = 4
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        End If
    Case 5
        If Board.PiecePos = 1 Then
            If Board.PieceY <= 17 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 5
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 5
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 5
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX + 1, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY + 2) = 5
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 5
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        End If
    Case 6
        If Board.PiecePos = 1 Then
            If Board.PieceY <= 17 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    For I = Board.PieceX - 1 To Board.PieceX + 1
                        If I <> Board.PieceX Then Board.Square(I, Board.PieceY) = 0
                        Board.Square(I, Board.PieceY + 1) = 6
                    Next
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX, Board.PieceY + 2) = 6
                    Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 6
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 3 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX, Board.PieceY + 2) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                    For I = Board.PieceX - 1 To Board.PieceX + 1
                        Board.Square(I, Board.PieceY) = 0
                        If I <> Board.PieceX Then Board.Square(I, Board.PieceY + 1) = 6
                    Next
                    Board.Square(Board.PieceX, Board.PieceY + 2) = 6
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        ElseIf Board.PiecePos = 4 Then
            If Board.PieceY <= 16 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX, Board.PieceY + 2) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX, Board.PieceY + 2) = 6
                    Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 6
                    Board.PieceY = Board.PieceY + 1
                Else
                    NewPiece = True
                End If
            Else
                NewPiece = True
            End If
        End If
    Case 7
        If Board.PieceY <= 17 Then
            If Board.Square(Board.PieceX, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0 Then
                Board.Square(Board.PieceX + 1, Board.PieceY - 1) = 0
                Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 7
                Board.Square(Board.PieceX, Board.PieceY + 1) = 7
                Board.PieceY = Board.PieceY + 1
            Else
                NewPiece = True
            End If
        Else
            NewPiece = True
        End If
End Select
If PlaySounds Then
    If NewPiece Then
        PlayWAV PIECE_STOP
    Else
        If Not FallPiece Then PlayWAV PIECE_DOWN
    End If
End If
End Sub

Sub MovePieceLeft()
'-------------------------------------------------------
'Moves the piece to the left provided that nothing is in
'the way
'-------------------------------------------------------

'Piece 1
'  Pos 1       Pos 2
'    X           X
'    X           O
'Y O O O O   Y Y O Y Y
'    X           O
'    X           O
'
'Piece 2
'  Pos 1       Pos 2       Pos 3       Pos 4
'    X           X           X           X
'  O X           O O         X           O
'Y O O O Y   Y Y O Y Y   Y O O O Y   Y Y O Y Y
'    X           O           X O       O O
'    X           X           X           X
'
'Piece 3
'  Pos 1       Pos 2       Pos 3       Pos 4
'    X           X           X           X
'    X O         O           X         O O
'Y O O O Y   Y Y O Y Y   Y O O O Y   Y Y O Y Y
'    X           O O       O X           O
'    X           X           X           X
'
'Piece 4
'  Pos 1       Pos 2
'    X           X
'  O O           X O
'Y Y O O Y   Y Y O O Y
'    X           O
'    X           X
'
'Piece 5
'  Pos 1       Pos 2
'    X           X
'    O O         O
'Y O O Y Y   Y Y O O Y
'    X           X O
'    X           X
'
'Piece 6
'  Pos 1       Pos 2       Pos 3       Pos 4
'    X           X           X           X
'    O           O           X           O
'Y O O O Y   Y Y O O Y   Y O O O Y   Y O O Y Y
'    X           O           O           O
'    X           X           X           X
'
'Piece 7
'  Pos 1
'    X
'    O O
'Y Y O O Y
'    X
'    X
Dim I
'Record what the board looks like before the piece is moved
OldBoard = Board
'Determines what piece is currently moving and what
'position it is in.  This tells it where to look for things
'that are in its way.  Provided nothing is there it moves
'to the left.
Select Case Board.CurPiece
    Case 1
        If Board.PiecePos = 1 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 2, Board.PieceY) = 0 Then
                    Board.Square(Board.PieceX + 2, Board.PieceY) = 0
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 1
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceX >= 2 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY + 2) = 0 Then
                    For I = Board.PieceY - 1 To Board.PieceY + 2
                        Board.Square(Board.PieceX, I) = 0
                        Board.Square(Board.PieceX - 1, I) = 1
                    Next
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        End If
    Case 2
        If Board.PiecePos = 1 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 2, Board.PieceY) = 0 And Board.Square(Board.PieceX - 2, Board.PieceY - 1) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 2
                    Board.Square(Board.PieceX - 2, Board.PieceY - 1) = 2
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceX >= 2 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 Then
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        Board.Square(Board.PieceX - 1, I) = 2
                        If I <> Board.PieceY - 1 Then Board.Square(Board.PieceX, I) = 0
                    Next
                    Board.Square(Board.PieceX + 1, Board.PieceY - 1) = 0
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 3 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 2, Board.PieceY) = 0 And Board.Square(Board.PieceX, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 2

⌨️ 快捷键说明

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