资源描述:
《扫雷游戏设计代码(VB完善版)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、扫雷游戏VB设计实现最终界面如下:显然只需完成三个窗体的设计即可,具体设计界面和代码如下:一、主窗体(form10)设计界面:主窗体(form10)的代码:Dimd(11,11)AsIntegerDimkAsIntegerDimv(100)AsInteger'定义全局变量'PrivateSubCommand1_Click(IndexAsInteger)Timer1.Enabled=True'当点击任意一个命令按钮时(即开始游戏),则启动计时器'i=Index10+1j=IndexMod10+1'将二维数组的元素与
2、命令按钮一一对应'Ifd(i,j)=1Then'判断是否点到地雷'Timer1.Enabled=False'关闭计时器,游戏结束'Fori=1To10Forj=1To10n=10*(i-1)m=j-1Ifd(i,j)=1ThenCommand1.Item(m+n).Picture=LoadPicture(App.Path&"2.jpg")'在按钮上显示地雷图片'EndIfForm1.Show'弹出子窗体1(判断输赢)'NextjNextiElseIfv(Index)=Index+1Then'判断是否插上红旗或是问
3、号图片'Command1.Item(Index).Picture=LoadPicture()'清除图片'Command1.Item(Index).Caption=f(i,j)'调用函数,显示周围地雷数'Command1.Item(Index).Enabled=False'将按钮设为不可用'Label7.Caption=Val(Label7.Caption)+1v(Index)=0EndIfh=s(i,j)'调用函数,显示周围的情况(边界)'ForY=0To99Ifv(Y)=Y+1ThenCommand1.Item(
4、Y).Enabled=True'如果是按钮插上了红旗则将按钮设置为可用'EndIfNextYEndIfFork=0To99IfCommand1.Item(k).Enabled=FalseThenp=p+1'统计扫过的按钮个数'Ifp=90ThenForY=0To100v(Y)=0NextY'将数组v的元素重新置0(此步目的为实现重玩而设)'Form2.Show'如果等于90个则结束游戏,弹出子窗体2(赢了)'EndIfEndIfNextkEndSubPrivateSubCommand1_MouseUp(IndexA
5、sInteger,ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2Then'右击鼠标'Ifv(Index)<>Index+1Then'判断是否已插上红旗'Command1.Item(Index).Picture=LoadPicture(App.Path&"1.jpg")'插上红旗'v(Index)=Index+1'给数组元素赋值,以此实现按钮图片的切换或显示状态'Label7.Caption=Val(Label7.Caption)-1'在标
6、签7中显示插上的红旗个数'ElseCommand1.Item(Index).Picture=LoadPicture(App.Path&"3.jpg")'将问号图片替换红旗'Label7.Caption=Val(Label7.Caption)+1v(Index)=0EndIfEndIfFori=1To10Forj=1To10Ifd(i,j)=1Thenn=10*(i-1)m=j-1Ifv(m+n)=m+n+1Thenc=c+1Ifc=10ThenForY=0To100v(Y)=0NextY'将数组v的元素重新置0(
7、此步目的为实现重玩而设)'Form2.Show'如果等于90个则结束游戏,弹出子窗体2(赢了)'EndIfEndIfNextjNextiEndSubPrivateSubForm_Load()k=0Fori=1To10Forj=1To10d(i,j)=0'将数组元素置0'NextjNextiDoWhilen<>10Randomizei=Int(10*Rnd+1)j=Int(10*Rnd+1)Ifd(i,j)=0Thend(i,j)=1:n=n+d(i,j)'产生十个随机数,即相当于十个地雷'LoopForm10.La
8、bel7.Caption=10Form10.Label2.Caption=0Form10.Label3.Caption=0EndSubFunctionf(i,j)'定义一个函数求一个区域周围地雷的个数'f=f+d(i-1,j-1)+d(i-1,j)+d(i-1,j+1)+d(i,j-1)f=f+d(i,j+1)+d(i+1,j-1)+d(i+1,j)+d(i