俄罗斯方块,急需用VB写的小游戏。
M(3)记录预览区域中四个活动方块的编号。
‘私人情况,情况2,linenum,t为整数’情况记录了游戏区域的盒子样式。
“情景2”记录预览区的方框样式
Linenum记录一次消除的行数。
Private subhidefong (a as integer)定义了使盒子不可见的过程。
选择案例a
Case 0' a = 0使游戏框不可见。
cmdfang(n(0))。可见=假
cmdfang(n(1))。可见=假
cmdfang(n(2))。可见=假
cmdfang(n(3))。可见=假
Case 1' a = 1使预览框不可见。
cmdfangnext(m(0))。可见=假
cmdfangnext(m(1))。可见=假
cmdfangnext(m(2))。可见=假
cmdfangnext(m(3))。可见=假
结束选择
末端接头
Private Sub showfang(a As Integer)定义了使盒子可见的过程。
选择案例a
Case 0' a = 0使游戏框可见。
cmdfang(n(0))。可见=真
cmdfang(n(1))。可见=真
cmdfang(n(2))。可见=真
cmdfang(n(3))。可见=真
Case 1' a = 1使预览框不可见。
cmdfangnext(m(0))。可见=真
cmdfangnext(m(1))。可见=真
cmdfangnext(m(2))。可见=真
cmdfangnext(m(3))。可见=真
结束选择
末端接头
Private Sub clearline()'定义了删除整个行的过程。
对于i = 190到10的步长-10
如果cmdfang(i)。Visible = True和_
cmdfang(i + 1)。Visible = True和_
cmdfang(i + 2)。Visible = True和_
cmdfang(i + 3)。Visible = True和_
cmdfang(i + 4)。Visible = True和_
cmdfang(i + 5)。Visible = True和_
cmdfang(i + 6)。Visible = True和_
cmdfang(i + 7)。Visible = True和_
cmdfang(i + 8)。Visible = True和_
cmdfang(i + 9)。可见=真
对于j = i + 4至I步-1
t = 1
cmdfang(j)。可见=假
cmdfang(2 * i + 9 - j)。可见=假
对于k = 1到4000
多项活动
然后
t = 0
然后
linenum = linenum + 1
对于j = i - 1到0步- 1
如果cmdfang(j)。可见=真
cmdfang(j)。可见=假
cmdfang(j + 10)。可见=真
如果…就会结束
然后
为了消除几行代码,这里使用了递归调用。
如果…就会结束
然后
末端接头
Private function down()作为boolean '自定义函数,来确定盒子是否可以被放下。
如果n(0)& lt;190和n(1)& lt;190和n(2)& lt;190和n(3)& lt;那就190
如果cmdfang(n(0) + 10)。Visible = False和_
cmdfang(n(1) + 10)。Visible = False和_
cmdfang(n(2) + 10)。Visible = False和_
cmdfang(n(3) + 10)。可见=假
downable = True
其他
downable = False
如果…就会结束
其他
downable = False
如果…就会结束
结束功能
私有函数leftable()作为boolean '自定义函数来确定框是否可以向左移动。
如果n(0)Mod 10 & lt;& gt0和n(1)Mod 10 & lt;& gt0和n(2)Mod 10 & lt;& gt0和n(3)Mod 10 & lt;& gt那么0
如果cmdfang(n(0) - 1)。Visible = False和_
cmdfang(n(1) - 1)。Visible = False和_
cmdfang(n(2) - 1)。Visible = False和_
cmdfang(n(3) - 1)。可见=假
leftable = True
其他
leftable = False
如果…就会结束
其他
leftable = False
如果…就会结束
结束功能
Private function right()作为boolean '自定义函数来确定框是否可以向右移动。
如果n(0)Mod 10 & lt;& gt9和n(1)Mod 10 & lt;& gt9和n(2)模块10 & lt;& gt9和n(3)Mod 10 & lt;& gt那就9
如果cmdfang(n(0) + 1)。Visible = False和_
cmdfang(n(1) + 1)。Visible = False和_
cmdfang(n(2) + 1)。Visible = False和_
cmdfang(n(3) + 1)。可见=假
rightable = True
其他
rightable = False
如果…就会结束
其他
rightable = False
如果…就会结束
结束功能
Private sublioadfangguai()'定义了随机生成一个盒子的过程。
Select Case Int(Rnd * 6)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例0 '这是一个矩形框。
Select Case Int(Rnd * 2)
案例0
m(0) = 3
m(1) = 4
m(2) = 5
m(3) = 6
情况2 = 0
案例1
m(0) = 5
m(1) = 15
m(2) = 25
m(3) = 35
情况2 = 1
结束选择
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
这是一个正方形的盒子。
m(0) = 4
m(1) = 5
m(2) = 14
m(3) = 15
情况2 = 2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例2 '这是一个规则的S形盒子。
Select Case Int(Rnd * 2)
案例0
m(0) = 6
m(1) = 5
m(2) = 15
m(3) = 14
情况2 = 3
案例1
m(0) = 4
m(1) = 14
m(2) = 15
m(3) = 25
情况2 = 4
结束选择
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例3 '这是一个倒置的S盒。
Select Case Int(Rnd * 2)
案例0
m(0) = 4
m(1) = 5
m(2) = 15
m(3) = 16
情况2 = 5
案例1
m(0) = 5
m(1) = 15
m(2) = 14
m(3) = 24
情况2 = 6
结束选择
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例4 '这是一个T-box。
Select Case Int(Rnd * 4)
案例0
m(0) = 4
m(1) = 5
m(2) = 6
m(3) = 15
情况2 = 7
案例1
m(0) = 5
m(1) = 15
m(2) = 25
m(3) = 14
情况2 = 8
案例2
m(0) = 16
m(1) = 15
m(2) = 14
m(3) = 5
情况2 = 9
案例3
m(0) = 24
m(1) = 14
m(2) = 4
m(3) = 15
情况2 = 10
结束选择
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例5 '这是一个普通的7字形盒子。
Select Case Int(Rnd * 4)
案例0
m(0) = 4
m(1) = 5
m(2) = 15
m(3) = 25
情况2 = 11
案例1
m(0) = 5
m(1) = 15
m(2) = 14
m(3) = 13
情况2 = 12
案例2
m(0) = 25
m(1) = 24
m(2) = 14
m(3) = 4
情况2 = 13
案例3
m(0) = 14
m(1) = 4
m(2) = 5
m(3) = 6
情况2 = 14
结束选择
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例6 '这是一个倒7字形的盒子。
Select Case Int(Rnd * 4)
案例0
m(0) = 5
m(1) = 4
m(2) = 14
m(3) = 24
情况2 = 15
案例1
m(0) = 15
m(1) = 5
m(2) = 4
m(3) = 3
情况2 = 16
案例2
m(0) = 24
m(1) = 25
m(2) = 15
m(3) = 5
情况2 = 17
案例3
m(0) = 4
m(1) = 14
m(2) = 15
m(3) = 16
情况2 = 18
结束选择
结束选择
末端接头
Private Sub zhuan()'定义了旋转盒子的过程。
选择案例情况
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例0 '这是一个矩形框。
如果n(0)-18 & gt;= 2和n(3)+9 & lt;= 198然后
如果cmdfang(n(0) - 18)。Visible = False和_
cmdfang(n(1) - 9)。Visible = False和_
cmdfang(n(3) + 9)。可见=假
隐藏方0
n(0) = n(0) - 18
n(1) = n(1) - 9
n(3) = n(3) + 9
秀芳0
情况= 1
如果…就会结束
如果…就会结束
案例1
if(n(0)+18)Mod 10 & lt;8和(n(3) - 9) Mod 10 >那么0
如果cmdfang(n(0) + 18)。Visible = False和_
cmdfang(n(1) + 9)。Visible = False和_
cmdfang(n(3) - 9)。可见=假
隐藏方0
n(0) = n(0) + 18
n(1) = n(1) + 9
n(3) = n(3) - 9
秀芳0
情况= 0
如果…就会结束
如果…就会结束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例2 '这是一个方盒子。
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例3 '这是一个规则的S形盒子。
如果n(0)-11 & gt;那么1
如果cmdfang(n(0) - 11)。Visible = False和_
cmdfang(n(3) + 2)。可见=假
隐藏方0
n(0) = n(0) - 11
n(2) = n(2) - 9
n(3) = n(3) + 2
秀芳0
情况= 4
如果…就会结束
如果…就会结束
案例4
if(n(3)-2)Mod 10 & lt;那就9
如果cmdfang(n(2) + 9)。Visible = False和_
cmdfang(n(3) - 2)。可见=假
隐藏方0
n(0) = n(0) + 11
n(2) = n(2) + 9
n(3) = n(3) - 2
秀芳0
情况= 3
如果…就会结束
如果…就会结束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例5 '这是一个倒置的S盒。
如果n(0)-9 & gt;那么1
If cmdfang(n(0) - 9)。Visible = False和_
cmdfang(n(3) - 2)。可见=假
隐藏方0
n(0) = n(0) - 9
n(2) = n(2) - 11
n(3) = n(3) - 2
秀芳0
情况= 6
如果…就会结束
如果…就会结束
案例6
if(n(3)+2)Mod 10 & gt;那么0
如果cmdfang(n(2) + 11)。Visible = False和_
cmdfang(n(3) + 2)。可见=假
隐藏方0
n(0) = n(0) + 9
n(2) = n(2) + 11
n(3) = n(3) + 2
秀芳0
情况= 5
如果…就会结束
如果…就会结束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
案例7 '这是一个T-box。
如果n(0)-9 & gt;那么0
If cmdfang(n(0) - 9)。可见=假
隐藏方0
n(0) = n(0) - 9
n(2) = n(2) + 9
n(3) = n(3) - 11
秀芳0
情况= 8
如果…就会结束
如果…就会结束
案例8
if(n(0)+11)Mod 10 & gt;那么0
如果cmdfang(n(0) + 11)。可见=假
隐藏方0
n(0) = n(0) + 11
n(2) = n(2) - 11
n(3) = n(3) - 9
秀芳0
情况= 9
如果…就会结束
如果…就会结束
案例9
如果n(0)+9 & lt;那就199
If cmdfang(n(0) + 9)。可见=假
隐藏方0
n(0) = n(0) + 9
n(2) = n(2) - 9
n(3) = n(3) + 11
秀芳0
情况= 10
如果…就会结束
如果…就会结束
案例10
if(n(0)-11)Mod 10 & lt;那就9
如果cmdfang(n(0) - 11)。可见=假
隐藏方0
n(0) = n(0) - 11
n(2) = n(2) + 11
n(3) = n(3) + 9
秀芳0
情况= 7
如果…就会结束
如果…就会结束