




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
扫雷游戏VB设计实现最终界面如下:显然只需完成三个窗体的设计即可,具体设计界面和代码如下:1、 主窗体(form10)设计界面:主窗体(form10)的代码:Dim d(11, 11) As Integer Dim k As IntegerDim v(100) As Integer 定义全局变量Private Sub Command1_Click(Index As Integer) Timer1.Enabled = True 当点击任意一个命令按钮时(即开始游戏),则启动计时器 i = Index 10 + 1 j = Index Mod 10 + 1 将二维数组的元素与命令按钮一一对应 If d(i, j) = 1 Then 判断是否点到地雷 Timer1.Enabled = False 关闭计时器,游戏结束 For i = 1 To 10 For j = 1 To 10 n = 10 * (i - 1) m = j - 1 If d(i, j) = 1 Then Command1.Item(m + n).Picture = LoadPicture(App.Path & 2.jpg) 在按钮上显示地雷图片 End If Form1.Show 弹出子窗体1(判断输赢) Next j Next i Else If v(Index) = Index + 1 Then 判断是否插上红旗或是问号图片 Command1.Item(Index).Picture = LoadPicture() 清除图片 Command1.Item(Index).Caption = f(i, j) 调用函数,显示周围地雷数 Command1.Item(Index).Enabled = False 将按钮设为不可用 Label7.Caption = Val(Label7.Caption) + 1 v(Index) = 0 End If h = s(i, j) 调用函数,显示周围的情况(边界) For Y = 0 To 99 If v(Y) = Y + 1 Then Command1.Item(Y).Enabled = True 如果是按钮插上了红旗则将按钮设置为可用 End If Next Y End If For k = 0 To 99 If Command1.Item(k).Enabled = False Then p = p + 1 统计扫过的按钮个数 If p = 90 Then For Y = 0 To 100 v(Y) = 0 Next Y 将数组v的元素重新置0(此步目的为实现重玩而设) Form2.Show 如果等于90个则结束游戏,弹出子窗体2(赢了) End If End If Next kEnd SubPrivate Sub Command1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then 右击鼠标 If v(Index) Index + 1 Then 判断是否已插上红旗 Command1.Item(Index).Picture = LoadPicture(App.Path & 1.jpg) 插上红旗 v(Index) = Index + 1 给数组元素赋值,以此实现按钮图片的切换或显示状态 Label7.Caption = Val(Label7.Caption) - 1 在标签7中显示插上的红旗个数 Else Command1.Item(Index).Picture = LoadPicture(App.Path & 3.jpg) 将问号图片替换红旗 Label7.Caption = Val(Label7.Caption) + 1 v(Index) = 0 End IfEnd IfFor i = 1 To 10 For j = 1 To 10 If d(i, j) = 1 Then n = 10 * (i - 1) m = j - 1 If v(m + n) = m + n + 1 Then c = c + 1 If c = 10 Then For Y = 0 To 100 v(Y) = 0 Next Y 将数组v的元素重新置0(此步目的为实现重玩而设) Form2.Show 如果等于90个则结束游戏,弹出子窗体2(赢了) End If End If Next j Next iEnd SubPrivate Sub Form_Load()k = 0For i = 1 To 10 For j = 1 To 10 d(i, j) = 0 将数组元素置0 Next jNext iDo While n 10 Randomize i = Int(10 * Rnd + 1) j = Int(10 * Rnd + 1) If d(i, j) = 0 Then d(i, j) = 1: n = n + d(i, j) 产生十个随机数,即相当于十个地雷LoopForm10.Label7.Caption = 10Form10.Label2.Caption = 0Form10.Label3.Caption = 0End SubFunction f(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 + 1, j + 1)End FunctionFunction s(i, j) 定义一个函数显示点击区域周围的情况(即边界) For Y = 0 To 100 If v(Y) = Y + 1 Then Command1.Item(Y).Enabled = False 如插上了红旗,则将按钮先设为不可用 End If Next Y If f(i, j) 0 Then 函数嵌套,调用函数判断周围是否无地雷 n = 10 * (i - 1) m = j - 1 Command1.Item(m + n).Picture = LoadPicture() Command1.Item(n + m).Caption = f(i, j) Command1.Item(n + m).Enabled = False 清除图片,显示地雷数,设置按钮不可用 Else For a = i - 1 To i + 1 For b = j - 1 To j + 1 If a 0 And b 11 And a 11 And b 0 Then n = 10 * (a - 1) m = b - 1 If Command1.Item(n + m).Enabled = True Then Command1.Item(m + n).Picture = LoadPicture() Command1.Item(n + m).Caption = f(a, b) Command1.Item(n + m).Enabled = False 清除图片,显示地雷数,设置按钮不可用 h = s(a, b) 调用函数本身,即实现递归 End If End If Next b Next aEnd IfEnd FunctionPrivate Sub Timer1_Timer() 设计一个计时器Label2.Caption = Val(Label2.Caption) + 1Label3.Caption = Val(Label2.Caption) 60 + Val(Label3.Caption)Label2.Caption = Val(Label2.Caption) Mod 60End Sub2、 子窗体一(form1)界面如下:子窗体一(form1)的代码:Private Sub Command1_Click()Unload Form10 Unload form1 Form10.ShowEnd SubPrivate Sub Command2_Click()Unload Form10Unload form1End SubPrivate Sub Command3_Click()For i = 0 To 99 Form10.Command1.Item(i).Picture = LoadPicture() Form10.Command1.Item(i).Caption = Form10.Command1.Item(i).Enabled = TrueNext iForm10.Label7.Caption = 10Form10.Label2.Caption = 0Form10.Label3.Caption = 0Unload form1End Sub3、 子窗体(form2)界面如下:子窗体二(form2)的代码:Private Sub Command1_Click()Unload Form10Form10.ShowUnload form2End SubPrivate Sub Command2_Click()Unload Form10Unload form2End SubPrivate Sub Command3_Click()For i = 0 To 99Form10.Command1.Item(i).Picture = LoadPicture()Form10.Command1.Item(i).Caption = Form10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》题库及参考答案详解【巩固】
- 教师招聘之《小学教师招聘》考前冲刺练习题汇编附答案详解
- 有线网络创新创业项目商业计划书
- 教师招聘之《小学教师招聘》题库及参考答案详解(突破训练)
- 2025年教师招聘之《幼儿教师招聘》考前冲刺练习题附参考答案详解(培优)
- 教师招聘之《小学教师招聘》题库检测试题打印及参考答案详解【能力提升】
- 2025年教师招聘之《幼儿教师招聘》题库检测试卷及答案详解(全优)
- 2025年教师招聘之《幼儿教师招聘》基础试题库带答案详解(新)
- 教师招聘之《幼儿教师招聘》强化训练题型汇编带答案详解(a卷)
- 教师招聘之《小学教师招聘》能力测试B卷附完整答案详解(典优)
- 老龄社区智慧化转型研究-洞察及研究
- 2025年中国电信面试试题及答案
- 《三星堆历史文化介绍》课件
- 山东校外托管机构管理暂行办法
- 语文课程教学技能课件
- 【Google】2025全球短剧营销白皮书(市场数据、渠道打法、ROI全盘点)
- 家政培训服务中心路演
- 模特老师培训课件模板
- IATF16949内审员培训资料
- 危重病人约束护理
- 艾梅乙反歧视培训课件
评论
0/150
提交评论