俄罗斯方块的VB代码.docx

上传人:b****6 文档编号:8598929 上传时间:2023-02-01 格式:DOCX 页数:24 大小:17.82KB
下载 相关 举报
俄罗斯方块的VB代码.docx_第1页
第1页 / 共24页
俄罗斯方块的VB代码.docx_第2页
第2页 / 共24页
俄罗斯方块的VB代码.docx_第3页
第3页 / 共24页
俄罗斯方块的VB代码.docx_第4页
第4页 / 共24页
俄罗斯方块的VB代码.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

俄罗斯方块的VB代码.docx

《俄罗斯方块的VB代码.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块的VB代码.docx(24页珍藏版)》请在冰豆网上搜索。

俄罗斯方块的VB代码.docx

俄罗斯方块的VB代码

俄罗斯方块的VB代码

Privaten(3),m(3)AsInteger'n(3)记录游戏区的四个活动方块的编号

'm(3)记录预览区的四个活动方块的编号

Privatesituation,situation2,linenum,tAsInteger'situation

记录游戏区的方块样式

'situation2记录预览区的方块样式

'linenum

记录一次消除的行数

PrivateSubhidefang(aAsInteger)'定义使方块不可见的过程

SelectCasea

Case0'a=0使游戏区方块不可见

cmdfang(n(0)).Visible=False

cmdfang(n

(1)).Visible=False

cmdfang(n

(2)).Visible=False

cmdfang(n(3)).Visible=False

Case1'a=1使预览区方块不可见

cmdfangnext(m(0)).Visible=False

cmdfangnext(m

(1)).Visible=False

cmdfangnext(m

(2)).Visible=False

cmdfangnext(m(3)).Visible=False

EndSelect

EndSub

PrivateSubshowfang(aAsInteger)'定义使方块可见的过程

SelectCasea

Case0'a=0使游戏区方块可见

cmdfang(n(0)).Visible=True

cmdfang(n

(1)).Visible=True

cmdfang(n

(2)).Visible=True

cmdfang(n(3)).Visible=True

Case1'a=1使预览区方块不可见

cmdfangnext(m(0)).Visible=True

cmdfangnext(m

(1)).Visible=True

cmdfangnext(m

(2)).Visible=True

cmdfangnext(m(3)).Visible=True

EndSelect

EndSub

PrivateSubclearline()'定义消除整

行的过程

Fori=190To10Step-10

Ifcmdfang(i).Visible=TrueAnd_

cmdfang(i+1).Visible=TrueAnd_

cmdfang(i+2).Visible=TrueAnd_

cmdfang(i+3).Visible=TrueAnd_

cmdfang(i+4).Visible=TrueAnd_

cmdfang(i+5).Visible=TrueAnd_

cmdfang(i+6).Visible=TrueAnd_

cmdfang(i+7).Visible=TrueAnd_

cmdfang(i+8).Visible=TrueAnd_

cmdfang(i+9).Visible=TrueThen

Forj=i+4ToiStep-1

t=1

cmdfang(j).Visible=False

cmdfang(2*i+9-j).Visible=False

Fork=1To4000

DoEvents

Next

t=0

Next

linenum=linenum+1

Forj=i-1To0Step-1

Ifcmdfang(j).Visible=TrueThen

cmdfang(j).Visible=False

cmdfang(j+10).Visible=True

EndIf

Next

clearline'为了实现

连消数行,这里使用递归调用

EndIf

Next

EndSub

PrivateFunctiondownable()AsBoolean'自定义函数,

确定方块是否能下降

Ifn(0)<190Andn

(1)<190Andn

(2)<190Andn(3)<190Then

Ifcmdfang(n(0)+10).Visible=FalseAnd_

cmdfang(n

(1)+10).Visible=FalseAnd_

cmdfang(n

(2)+10).Visible=FalseAnd_

cmdfang(n(3)+10).Visible=FalseThen

downable=True

Else

downable=False

EndIf

Else

downable=False

EndIf

EndFunction

PrivateFunctionleftable()AsBoolean'自定义函

数,确定方块是否能左移

Ifn(0)Mod10<>0Andn

(1)Mod10<>0Andn

(2)Mod10<>0Andn(3)Mod10<>0Then

Ifcmdfang(n(0)-1).Visible=FalseAnd_

cmdfang(n

(1)-1).Visible=FalseAnd_

cmdfang(n

(2)-1).Visible=FalseAnd_

cmdfang(n(3)-1).Visible=FalseThen

leftable=True

Else

leftable=False

EndIf

Else

leftable=False

EndIf

EndFunction

PrivateFunctionrightable()AsBoolean'自定义函

数,确定方块是否能右移

Ifn(0)Mod10<>9Andn

(1)Mod10<>9Andn

(2)Mod10<>9Andn(3)Mod10<>9Then

Ifcmdfang(n(0)+1).Visible=FalseAnd_

cmdfang(n

(1)+1).Visible=FalseAnd_

cmdfang(n

(2)+1).Visible=FalseAnd_

cmdfang(n(3)+1).Visible=FalseThen

rightable=True

Else

rightable=False

EndIf

Else

rightable=False

EndIf

EndFunction

PrivateSubloadfangkuai()'定义随机产

生一种方块的过程

SelectCaseInt(Rnd*6)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Case0'这是长条

型方块

SelectCaseInt(Rnd*2)

Case0

m(0)=3

m

(1)=4

m

(2)=5

m(3)=6

situation2=0

Case1

m(0)=5

m

(1)=15

m

(2)=25

m(3)=35

situation2=1

EndSelect

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''

Case1'这是正方

形方块

m(0)=4

m

(1)=5

m

(2)=14

m(3)=15

situation2=2

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''

Case2'这是正S

型方块

SelectCaseInt(Rnd*2)

Case0

m(0)=6

m

(1)=5

m

(2)=15

m(3)=14

situation2=3

Case1

m(0)=4

m

(1)=14

m

(2)=15

m(3)=25

situation2=4

EndSelect

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''

Case3'这是反S

型方块

SelectCaseInt(Rnd*2)

Case0

m(0)=4

m

(1)=5

m

(2)=15

m(3)=16

situation2=5

Case1

m(0)=5

m

(1)=15

m

(2)=14

m(3)=24

situation2=6

EndSelect

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''

Case4'这是T型

方块

SelectCaseInt(Rnd*4)

Case0

m(0)=4

m

(1)=5

m

(2)=6

m(3)=15

situation2=7

Case1

m(0)=5

m

(1)=15

m

(2)=25

m(3)=14

situation2=8

Case2

m(0)=16

m

(1)=15

m

(2)=14

m(3)=5

situation2=9

Case3

m(0)=24

m

(1)=14

m

(2)=4

m(3)=15

situation2=10

EndSelect

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''

Case5'这是正7

字型方块

SelectCaseInt(Rnd*4)

Case0

m(0)=4

m

(1)=5

m

(2)=15

m(3)=25

situation2=11

Case1

m(0)=5

m

(1)=15

m

(2)=14

m(3)=13

situation2=12

Case2

m(0)=25

m

(1)=24

m

(2)=14

m(3)=4

situation2=13

Case3

m(0)=14

m

(1)=4

m

(2)=5

m(3)=6

situation2=14

EndSelect

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''

Case6'这是反7

字型方块

SelectCaseInt(Rnd*4)

Case0

m(0)=5

m

(1)=4

m

(2)=14

m(3)=24

situation2=15

Case1

m(0)=15

m

(1)=5

m

(2)=4

m(3)=3

situation2=16

Case2

m(0)=24

m

(1)=25

m

(2)=15

m(3)=5

situation2=17

Case3

m(0)=4

m

(1)=14

m

(2)=15

m(3)=16

situation2=18

EndSelect

EndSelect

EndSub

PrivateSubzhuan()'定义使方块

旋转的过程

SelectCasesituation

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case0'这是长条

型方块

Ifn(0)-18>=2Andn(3)+9<=198Then

Ifcmdfang(n(0)-18).Visible=FalseAnd_

cmdfang(n

(1)-9).Visible=FalseAnd_

cmdfang(n(3)+9).Visible=FalseThen

hidefang0

n(0)=n(0)-18

n

(1)=n

(1)-9

n(3)=n(3)+9

showfang0

situation=1

EndIf

EndIf

Case1

If(n(0)+18)Mod10<8And(n(3)-9)Mod10>0Then

Ifcmdfang(n(0)+18).Visible=FalseAnd_

cmdfang(n

(1)+9).Visible=FalseAnd_

cmdfang(n(3)-9).Visible=FalseThen

hidefang0

n(0)=n(0)+18

n

(1)=n

(1)+9

n(3)=n(3)-9

showfang0

situation=0

EndIf

EndIf

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case2'这是正方

形方块

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case3'这是正S

型方块

Ifn(0)-11>1Then

Ifcmdfang(n(0)-11).Visible=FalseAnd_

cmdfang(n(3)+2).Visible=FalseThen

hidefang0

n(0)=n(0)-11

n

(2)=n

(2)-9

n(3)=n(3)+2

showfang0

situation=4

EndIf

EndIf

Case4

If(n(3)-2)Mod10<9Then

Ifcmdfang(n

(2)+9).Visible=FalseAnd_

cmdfang(n(3)-2).Visible=FalseThen

hidefang0

n(0)=n(0)+11

n

(2)=n

(2)+9

n(3)=n(3)-2

showfang0

situation=3

EndIf

EndIf

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case5'这是反S

型方块

Ifn(0)-9>1Then

Ifcmdfang(n(0)-9).Visible=FalseAnd_

cmdfang(n(3)-2).Visible=FalseThen

hidefang0

n(0)=n(0)-9

n

(2)=n

(2)-11

n(3)=n(3)-2

showfang0

situation=6

EndIf

EndIf

Case6

If(n(3)+2)Mod10>0Then

Ifcmdfang(n

(2)+11).Visible=FalseAnd_

cmdfang(n(3)+2).Visible=FalseThen

hidefang0

n(0)=n(0)+9

n

(2)=n

(2)+11

n(3)=n(3)+2

showfang0

situation=5

EndIf

EndIf

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case7'这是T

型方块

Ifn(0)-9>0Then

Ifcmdfang(n(0)-9).Visible=FalseThen

hidefang0

n(0)=n(0)-9

n

(2)=n

(2)+9

n(3)=n(3)-11

showfang0

situation=8

EndIf

EndIf

Case8

If(n(0)+11)Mod10>0Then

Ifcmdfang(n(0)+11).Visible=FalseThen

hidefang0

n(0)=n(0)+11

n

(2)=n

(2)-11

n(3)=n(3)-9

showfang0

situation=9

EndIf

EndIf

Case9

Ifn(0)+9<199Then

Ifcmdfang(n(0)+9).Visible=FalseThen

hidefang0

n(0)=n(0)+9

n

(2)=n

(2)-9

n(3)=n(3)+11

showfang0

situation=10

EndIf

EndIf

Case10

If(n(0)-11)Mod10<9Then

Ifcmdfang(n(0)-11).Visible=FalseThen

hidefang0

n(0)=n(0)-11

n

(2)=n

(2)+11

n(3)=n(3)+9

showfang0

situation=7

EndIf

EndIf

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case11'这是正

7字型方块

Ifn(0)-9>1And(n(3)-22)Mod10<9Then

Ifcmdfang(n(0)-9).Visible=FalseAnd_

cmdfang(n(3)-22).Visible=FalseThen

hidefang0

n(0)=n(0)-9

n

(2)=n

(2)-11

n(3)=n(3)-22

showfang0

situation=12

EndIf

EndIf

Case12

If(n(0)+11)Mod10>0Andn(3)-18>1Then

Ifcmdfang(n(0)+11).Visible=FalseAnd_

cmdfang(n(3)-18).Visible=FalseThen

hidefang0

n(0)=n(0)+11

n

(2)=n

(2)-9

n(3)=n(3)-18

showfang0

situation=13

EndIf

EndIf

Case13

Ifn(0)+9<198And(n(3)+22)Mod10>0Then

Ifcmdfang(n(0)+9).Visible=FalseAnd_

cmdfang(n(3)+22).Visible=FalseThen

hidefang0

n(0)=n(0)+9

n

(2)=n

(2)+11

n(3)=n(3)+22

showfang0

situation=14

EndIf

EndIf

Case14

If(n(0)-11)Mod10<9Andn(3)+18<198Then

Ifcmdfang(n(0)-11).Visible=FalseAnd_

cmdfang(n(3)+18).Visible=FalseThen

hidefang0

n(0)=n(0)-11

n

(2)=n

(2)+9

n(3)=n(3)+18

showfang0

situation=11

EndIf

EndIf

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''

Case15'这是反

7字型方块

If(n(3)-22)Mod10<8Then

Ifcmdfang(n

(2)-11).Visible=FalseAnd_

cmdfang(n(3)-22).Visible=FalseThen

hidefang0

n(0)=n(0)+9

n(2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1