俄罗斯方块源VB代码文档格式.docx

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

俄罗斯方块源VB代码文档格式.docx

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

俄罗斯方块源VB代码文档格式.docx

EndIf

Get_X_Value=True

ExitFunction

Get_X_Value=False

EndFunction

FunctionGetValue(nTypeAsInteger,nWidAsInteger)

GetCoor

OnErrorResumeNext

DimOKCount,EmptyCountAsInteger

MinX=Xs

(1).cX

MaxX=Xs

(1).cX

MinY=Xs

(1).cY

MaxY=Xs

(1).cY

Fori=2To4

IfMinX>

Xs(i).cXThenMinX=Xs(i).cX

IfMaxX<

Xs(i).cXThenMaxX=Xs(i).cX

IfMinY>

Xs(i).cYThenMinY=Xs(i).cY

IfMaxY<

Xs(i).cYThenMaxY=Xs(i).cY

Next

Fori=MinXToMaxX

Forj=MinYToMaxY

IfTotal(i,j)Then

GetValue=False

IfnType=0Then'

GetYValue

EmptyCount=0'

GetMinY

OKCount=0

Fori=MinY-1ToMinY-(nWid-1)Step-1

Forj=MinXToMaxX

IfTotal(j,i)=FalseThenOKCount=OKCount+1

IfOKCount>

=picPictureNow.WidthAndOKCount>

=picPictureNow.HeightThen

EmptyCount=EmptyCount+1

ExitFor

MinY=MinY-EmptyCount

IfMinY<

1ThenMinY=1

GetMaxY

Fori=MaxY+1ToMaxY+nWid-1

MaxY=MaxY+EmptyCount

IfMaxY>

20ThenMaxY=20

Else'

GetMinX

Fori=MinX-1ToMinX-(nWid-1)Step-1

IfTotal(i,j)=FalseThenOKCount=OKCount+1

MinX=MinX-EmptyCount

IfMinX<

1ThenMinX=1

GetMaxX

Fori=MaxX+1ToMaxX+(nWid-1)

MaxX=MaxX+EmptyCount

IfMaxX>

10ThenMaxX=10

GetValue=True

FunctionGet_Y_Value()

IfGetValue(0,2)Then'

IfMaxY-MinY>

IfMaxY-(picPictureNow.Top+1)<

Adjust_Top=MinY-1

Adjust_Top=picPictureNow.Top

Get_Y_Value=True

Get_Y_Value=False

SubGlobal_Init()

'

全局初始化

picBackGround.Cls

imgPictureNext.Picture=LoadPicture("

"

picPictureNow.Visible=False

tmrDrop.Enabled=False

EndSub

SubInit()

每个方块的初始化过程

Type_Now=Type_Next

picPictureNow.Picture=imgPictureNext.Picture

imgPictureNowBackup.Picture=picPictureNow.Picture

Sel_Next

intRotate=0

picPictureNow.Left=4

picPictureNow.Top=0

picPictureNow.Visible=True

tmrDrop.Enabled=True

SubGetCoor()

获取一个方块的4个点的坐标

Fori=1To4'

init

Xs(i).cX=0

Xs(i).cY=0

Xs(i).cZ=False

Next

CurX=picPictureNow.Left+1

SelectCaseType_Now

Case1'

长条

IfintRotateMod2=1Then

Xs

(1).cX=CurX

Xs

(1).cY=picPictureNow.Top+1

Xs

(1).cZ=True

Xs(i).cX=CurX+i-1

Xs(i).cY=picPictureNow.Top+1

Xs(i).cZ=True

Xs

(1).cY=picPictureNow.Top+4

Xs(i).cX=CurX

Xs(i).cY=picPictureNow.Top+i-1

Case2'

2字

Xs

(1).cY=picPictureNow.Top+3

Xs

(2).cX=CurX+1

Xs

(2).cY=picPictureNow.Top+2

Xs

(2).cZ=True

Fori=3To4

Xs(i).cX=CurX+i-3

Xs(i).cY=picPictureNow.Top+5-i

Xs(3).cX=CurX+2

Xs(3).cY=picPictureNow.Top+2

Xs(3).cZ=True

Xs(4).cX=CurX+1

Xs(4).cY=picPictureNow.Top+1

Xs(4).cZ=False

Case3'

7字

SelectCaseintRotateMod4

Case0

Xs

(2).cY=picPictureNow.Top+3

Xs(i).cX=CurX+1

Xs(i).cY=picPictureNow.Top+i-2

Case1

Xs

(1).cY=picPictureNow.Top+2

Xs(4).cX=CurX+2

Case2

Case3

Xs

(2).cY=picPictureNow.Top+1

Xs(3).cY=picPictureNow.Top+1

Xs(4).cX=CurX

EndSelect

Case4'

T字

Case5'

反7字

Case6'

反2字

Case7'

田字

SubJudge_Full()

判断是否堆满

R_Value=picPictureNow.Top+1'

MinY

rx_value=picPictureNow.Top+picPictureNow.Height'

MaxY

Fori=rx_valueToR_ValueStep-1

IfTotal(1,i)AndTotal(2,i)AndTotal(3,i)AndTotal(4,i)AndTotal(5,i)And_

Total(6,i)AndTotal(7,i)AndTotal(8,i)AndTotal(9,i)AndTotal(10,i)Then

'

如果一行已经堆满,则将此行上面的图象全部向下移动一点

k=BitBlt(picBackGround.hDC,0,20,200,(i-1)*20,picBackGround.hDC,0,0,vbSrcCopy)

SUCCESS=sndPlaySound(App.Path+"

\45\eat.WAV"

&

H1)

fen=fen+10

Text1.Text=fen

\45\11.WAV"

Forj=iTo1Step-1

Fork=1To10

Total(k,j)=Total(k,j-1)

Nextk

Nextj

i=i+1

Nexti

Iffen>

=1000Then

tmrDrop.Interval=200

ji=3

ElseIffen>

=50Then

tmrDrop.Interval=100

ji=2

Else:

tmrDrop.Interval=450

ji=1

EndIf

Text2.Text=ji

如果目前方块的顶点位置<

=0,则表示全部堆满

IfpicPictureNow.Top<

\45\Dead.WAV"

Sele

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

当前位置:首页 > IT计算机 > 互联网

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

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