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

📄 vbtris32.bas

📁 一个很好的VB程序
💻 BAS
📖 第 1 页 / 共 5 页
字号:
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 2
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 4 Then
            If Board.PieceX >= 3 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 - 2, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX - 2, Board.PieceY + 1) = 2
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        Board.Square(Board.PieceX, I) = 0
                        If I <> Board.PieceY + 1 Then Board.Square(Board.PieceX - 1, I) = 2
                    Next
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        End If
    Case 3
        If Board.PiecePos = 1 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) = 3
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 3
                    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) = 3
                        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 - 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) = 3
                    Board.Square(Board.PieceX - 2, Board.PieceY + 1) = 3
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 4 Then
            If Board.PieceX >= 3 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 - 2, Board.PieceY - 1) = 0 Then
                    Board.Square(Board.PieceX - 2, Board.PieceY - 1) = 3
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        Board.Square(Board.PieceX, I) = 0
                        If I <> Board.PieceY - 1 Then Board.Square(Board.PieceX - 1, I) = 3
                    Next
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        End If
    Case 4
        If Board.PiecePos = 1 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY) = 0 And Board.Square(Board.PieceX - 2, 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) = 4
                    Board.Square(Board.PieceX - 2, Board.PieceY - 1) = 4
                    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, Board.PieceY - 1) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 4
                    Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 4
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 4
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        End If
    Case 5
        If Board.PiecePos = 1 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 2, Board.PieceY) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0 Then
                    Board.Square(Board.PieceX, Board.PieceY) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 5
                    Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 5
                    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, Board.PieceY + 1) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX + 1, Board.PieceY + 1) = 0
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 5
                    Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 5
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 5
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        End If
    Case 6
        If Board.PiecePos = 1 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 2, Board.PieceY) = 0 And Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 0
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 6
                    Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 6
                    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
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        If I <> Board.PieceY Then Board.Square(Board.PieceX, I) = 0
                        Board.Square(Board.PieceX - 1, I) = 6
                    Next
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 3 Then
            If Board.PieceX >= 3 Then
                If Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX - 2, Board.PieceY) = 0 Then
                    Board.Square(Board.PieceX + 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX, Board.PieceY + 1) = 0
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 6
                    Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 6
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        ElseIf Board.PiecePos = 4 Then
            If Board.PieceX >= 3 Then
                 If Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX - 2, 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, I) = 0
                        If I <> Board.PieceY Then Board.Square(Board.PieceX - 1, I) = 6
                    Next
                    Board.Square(Board.PieceX - 2, Board.PieceY) = 6
                    Board.PieceX = Board.PieceX - 1
                End If
            End If
        End If
    Case 7
        If Board.PieceX >= 2 Then
            If Board.Square(Board.PieceX - 1, Board.PieceY) = 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 + 1, Board.PieceY) = 0
                Board.Square(Board.PieceX - 1, Board.PieceY) = 7
                Board.Square(Board.PieceX - 1, Board.PieceY - 1) = 7
                Board.PieceX = Board.PieceX - 1
            End If
        End If
End Select
'Draw the board
DrawBoard

End Sub

Sub MovePieceRight()
'-------------------------------------------------------
'Moves the piece to the right 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 right.
Select Case Board.CurPiece
    Case 1
        If Board.PiecePos = 1 Then
            If Board.PieceX <= 7 Then
                If Board.Square(Board.PieceX + 3, Board.PieceY) = 0 Then
                    Board.Square(Board.PieceX - 1, Board.PieceY) = 0
                    Board.Square(Board.PieceX + 3, Board.PieceY) = 1
                    Board.PieceX = Board.PieceX + 1
                End If
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceX <= 9 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 <= 8 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
                    Board.Square(Board.PieceX, Board.PieceY - 1) = 2
                    Board.PieceX = Board.PieceX + 1
                End If
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceX <= 8 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 + 2, Board.PieceY - 1) = 0 Then
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        Board.Square(Board.PieceX, I) = 0
                        If I <> Board.PieceY - 1 Then Board.Square(Board.PieceX + 1, I) = 2
                    Next
                    Board.Square(Board.PieceX + 2, Board.PieceY - 1) = 2
                    Board.PieceX = Board.PieceX + 1
                End If
            End If
        ElseIf Board.PiecePos = 3 Then
            If Board.PieceX <= 8 Then
                If Board.Square(Board.PieceX + 2, Board.PieceY + 1) = 0 And Board.Square(Board.PieceX + 2, Board.PieceY) = 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 = 4 Then
            If Board.PieceX <= 9 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
                    Board.Square(Board.PieceX - 1, Board.PieceY + 1) = 0
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        If I <> Board.PieceY + 1 Then Board.Square(Board.PieceX, I) = 0
                        Board.Square(Board.PieceX + 1, I) = 2
                    Next
                    Board.PieceX = Board.PieceX + 1
                End If
            End If
        End If
    Case 3
        If Board.PiecePos = 1 Then
            If Board.PieceX <= 8 Then
                If Board.Square(Board.PieceX + 2, Board.PieceY - 1) = 0 And Board.Square(Board.PieceX + 2, Board.PieceY) = 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) = 3
                    Board.Square(Board.PieceX + 2, Board.PieceY - 1) = 3
                    Board.PieceX = Board.PieceX + 1
                End If
            End If
        ElseIf Board.PiecePos = 2 Then
            If Board.PieceX <= 8 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 + 2, Board.PieceY + 1) = 0 Then
                    For I = Board.PieceY - 1 To Board.PieceY + 1
                        Board.Square(Board.PieceX, I) = 0
                        If I <> Board.PieceY + 1 Then Board.Square(Board.PieceX + 1, I) = 3
                    Next

⌨️ 快捷键说明

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