📄 vbtris32.bas
字号:
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 + -