俄罗斯方块,急需用VB写的小游戏。

Private n(3),m(3) As Integer 'n(3)记录游戏区域中四个活动方块的编号。

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

如果…就会结束

如果…就会结束