电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

VB.NET扫雷游戏

35页
  • 卖家[上传人]:cl****1
  • 文档编号:473459451
  • 上传时间:2023-05-30
  • 文档格式:DOC
  • 文档大小:1.02MB
  • / 35 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、目录问题描述2需求分析2程序规划4程序流程图4概要设计6一、界面设计61、主界面 MainForm62、选项框 Options83、统计信息 HighScore94、帮助框体 Help105、关于 AboutBox10详细设计111、函数设计11MainForm窗体:11MainForm函数调用关系图:18Options窗体:182、程序性能分析20测试分析21一、基本功能测试211、游戏功能212、设置功能253、帮助功能30二、白盒测试32输入错误测试32三、测试结果35问题描述 编写一个扫雷程序,完成基本的扫雷游戏功能。需求分析用户打开游戏界面。游戏界面有两下拉菜单,一个是游戏菜单,另一个是帮助菜单。界面中间是矩阵方格,下方是计时器和雷计数器,分别显示扫雷用时和未扫出雷的个数。开始扫雷时,用户无论第一次点击哪个格子都不会是雷。之后用户鼠标左键单击小格,是雷就扫雷失败,失败就显示所有雷的位置;不是雷且是数字就显示数字,没有数字就打开周围的空格直到周围(横向纵向的四个格子,不包括对角线)是数字。鼠标右键点击小格标注小红旗,如果不确定就点击两次右键标注问号,再点一次还原。标注红旗则表示

      2、用户标注此处为雷(不管是否正确),问号用于给用户标注不确定的区域,对游戏进程无影响。标注红旗的格子无法用左键打开,问号格子可以。左右键同时点中一个数字且数字周围的红旗数等于数字则将其他的小格全部打开,若红旗数大于或小于数字则将其他的小格闪动提示用户无法打开。如果旗子插错则导致打开含雷的区域,游戏失败。若将所有雷标出则提示游戏通关,若超过该难度前十记录则提示用户保存记录。游戏设有计时器,按秒计算,最高显示999秒。游戏显示剩余雷数,此显示总雷数减去用户插的小旗数。在游戏菜单中设有“新游戏”、“统计信息”、“选项”、“退出”,四个功能项。点击“新游戏”后游戏开始,如果游戏正在进行,点击则重新开始游戏。点击“统计信息”,显示每个等级前十名次的扫雷速度纪录。点击“选项”弹出选项框,可有初、中、高级的游戏难度选择,另外还有自定义难度选择,可调高度(9-24)、宽度(9-30)和雷数(10-(高度-1)*(宽度-1),用户输入的设置大于或小于可允许的范围则弹出提示并要求用户更改(雷数范围超过最大范围时不提示,系统直接设定为可允许的最大值)。点击“退出”,则退出程序。帮助菜单中设有“查看帮助”,点击

      3、则出来游戏说明。关于 扫雷则是一个About窗口,里面有扫雷的版本及版权等信息。本程序游戏过程无键盘操作。程序规划程序流程图1开始根据用户选择难度(默认初级)绘制方格等待按键第一下按下左键?右键?插旗 问号 恢复是1.布置地图2.启动定时器否否 左键?是否中键、左右键同时?计时器否 234554321结束再玩?方块是地雷?记录按下方块是展开的数字?否 探雷完毕?否 是否 是递归展开非地雷方块是引爆雷?否 新纪录?是否 概要设计一、界面设计61、主界面 MainForm43125地雷区Panel雷区格子由代码创建,具体显示格子部分采用PictureBox实现菜单栏 MenuStrip 点击新游戏重新开始游戏 点击统计信息打开记录窗口 点击选项打开选项窗口 点击退出退出游戏 点击查看帮助打开帮助窗口 点击关于 扫雷打开关于窗口计时区 Panel 和 PictureBox 采用PictureBox换图方式来显示时间计雷区 Panel 和 PictureBox 采用PictureBox换图方式来显示剩余雷数计时控件 Timer 计时器,在游戏过程中同步计时标题栏 ICO 采用自己的程序LOGO

      4、12、选项框 Options743256标示 GroupBox 让界面显得整洁难度选择 RadioButton 单选按钮,选择游戏的难度自定义设定区域 Panel 通过Panel的Enable来设置内容的可用与否自定义输入框 TextBox 输入用户自定义雷区高宽,和雷数提示信息 Label 提示用户输入数字范围确定按钮 Button 点击确定确认选择取消按钮 Button 点击取消放弃选择3、统计信息 HighScore6352417难度标示 GroupBox 三种已定义难度分类排名显示 Label 显示各难度下前十名的名字和时间返回按钮 Button 点击返回返回主界面4、帮助框体 Help654321帮助项选择 LickLabel 选择不同的帮助项目,显示不同的帮助信息帮助信息显示框 TextBox 显示帮助信息内容返回按钮 Button 返回主界面5、关于 AboutBox12关于窗体 AboutBox 一个窗体,已经预先定义了获取信息的位置,只需要在程序集信息中更改即可改变实际显示公司标志 PictureBox 插入自己的程序LOGO6、新纪录窗体 NewScore4312提

      5、示信息 Label 显示新纪录的时间和鼓励信息玩家名字输入框 TextBox 用户输入自己的姓名确定按钮 Button 点击确定保存记录取消按钮 Button 点击取消放弃保存,并开始新游戏详细设计1、函数设计MainForm窗体:Public Structure MineCheck Public Sign As Integer 标识雷或提示数字 Public Opened As Boolean Public RightSign As Integer 标识旗或问号 Public Picture As PictureBoxEnd Structure 该结构体用于记录和表示每个格子的信息,包括:该格是否是雷或周围的雷数、打开与否、当前是旗还是问号、该格显示的图片框。Public Structure NameAndScore 记录结构体 Public Name As String 玩家名字 Public Score As Integer 玩家游戏消耗时间End Structure该结构体用于储存文件中的排名信息,包括:玩家名字和玩家游戏经历的时间。由于记录功能未能实现,该结构体未起作用。Pu

      6、blic Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load主窗体载入,调整游戏难度或者重新开始时调用此函数重绘窗体结构,通过此函数调用其它函数重绘雷区。Public Function DrawCheck(ByVal Mines(,) As MineCheck) Return Mines函数用于绘制扫雷游戏游戏区域的方格。该函数在窗体载入时被调用。函数入口:结构体MineCheck二维动态数组Mines(,) 函数出口:返回该结构体二维动态数组Public Function DrawMine(ByVal Mines(,) As MineCheck, ByVal FirstCheck As Integer)Return Mines该函数用于绘制雷区分布和探测并记录每一格(除了是雷得格)周围(周围8个格子)的总雷数。该函数在游戏开始后第一次点击游戏区时被调用。函数入口:结构体MineCheck二维动态数组Mines(,) 函数出口:返回该结构体二维

      7、动态数组Public Sub Check_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)该函数作为响应所有生成的PICTUREBOX的点击事件的函数。该函数在窗体绘制完毕后被用户使用。函数内部分为左键、右键、双键同时点击三种处理,分别调用不同的函数来处理。左键ShowCheckPicture(X, Y)右键ShowRightPicture(X, Y)左右键 ShowDoublePicture(X, Y)函数入口:sender、e 函数返回:无Public Sub Check_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)该函数用于处理用户中键点击按下事件。在用户中键按下时触发。函数入口:sender、e 函数返回:无Public Sub Check_MouseUp(ByVal sender As System.Object, B

      8、yVal e As System.Windows.Forms.MouseEventArgs)该函数用于处理用户中键点击抬起事件。抬起时判断所按键是否为翻开的数字键及周围插旗数是否等于该格数字。若等于则调用ShowCheckPicture(X, Y)函数翻开非旗空格。该事件在用户中键抬起时触发。函数入口:sender、e 函数返回:无Public Sub ShowCheckPicture(ByVal X As Integer, ByVal Y As Integer)该函数用于处理用户左键点击方格的结果。分为是雷不是雷两种情况。在用户左键单击方格后被调用。是雷:改动图片 调用ShowMineWhenFail(X, Y)不是雷:周围无雷 调用FindMine(X, Y) 周围有雷 改变图片 调用Win()函数入口:X, Y为用户所点击方格对应的结构体在结构体数组中的位置。 函数返回:无Public Sub ShowRightPicture(ByVal X As Integer, ByVal Y As Integer)该函数用于处理用户右键点击方格的结果。分为置空白、置小旗、置问号三种情况。在用户右键单击未展开方格后被调用。函数入口:X, Y为用户所点击方格对应的结构体在结构体数组中的位置。 函数返回:无Public Sub ShowDoublePicture(ByVal X As Integer, ByVal Y As Integer)该函数用于处理用户左右键同时单击方格的情况,类同中键按下和抬起。因为无法同时处理左右键点击事件,所以该功能暂时无效。函数入口:X, Y为用户所点击方格所对应的结构体在结构体数组中的位置。 函数返回:无Public Sub FindMine(ByVal X As Integer, ByVal Y As Integer)该函数通过递归方法翻开空白格子直到有数字为止。每打开一格调用一次Win()函数。该函数在翻开格子的时候被调用。函数入口:X, Y为其它函数所要打开的格子的坐标。 函数返回:无

      《VB.NET扫雷游戏》由会员cl****1分享,可在线阅读,更多相关《VB.NET扫雷游戏》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.