扫雷软件设计报告

上传人:hao****an 文档编号:157356498 上传时间:2022-09-29 格式:DOC 页数:11 大小:154.02KB
收藏 版权申诉 举报 下载
扫雷软件设计报告_第1页
第1页 / 共11页
扫雷软件设计报告_第2页
第2页 / 共11页
扫雷软件设计报告_第3页
第3页 / 共11页
资源描述:

《扫雷软件设计报告》由会员分享,可在线阅读,更多相关《扫雷软件设计报告(11页珍藏版)》请在装配图网上搜索。

1、摘 要此次设计的一款扫雷游戏,其功能类似于Windows操作系统自带的扫雷游戏。首先介绍了制作游戏的整体思路及整个游戏设计的流程规划,然后介绍了雷区的布置及地雷随机产生的实现方法;重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为重要,鼠标事件是利用鼠标所发出的信息了解使用者的意图,进而做出相对应的动作,而清除未靠近地雷区方块由于引进了“递归”这个概念而使其简单化。本次设计只是完成了扫雷游戏的基本功能,在细节方面仍有待完善。关键词:扫雷、事件、递归目 录1引言11.1课题背景11.2本文的主要工作12 需求分析及开发环境12.1系统目标12.2系统应具备的基

2、本功能12.3开发环境及工具23系统总体设计23.1基本简介23.2功能模块设计34 系统流程与实现54.1系统流程54.2游戏界面介绍6总结9参考文献91引言1.1课题背景扫雷是一个相对来说较为简单的小游戏。而且由于自身能力有限的问题,所以对于首次尝试制作小游戏的我是一个比较不错的选题。由于从未制作过任何的软件,为了将自己的所学知识加以运用,制作过程很大上的程度借鉴了别人的思想。但是我希望通过此次制作和学习过程,可以了解软件设计的方法。1.2本文的主要工作本文主要工作时相对较为详细的阐述此个小游戏,也就是扫雷的制作过程,遇到的问题,还有解决办法。所采用的工具软件和使用的方法。2 需求分析及开

3、发环境2.1系统目标游戏开始时,系统会在雷区的某些小方块中随机布下若干个地雷。安放好地雷的小方块称之为雷方块,其他的称之为非雷方块。部署完毕后,系统会在其他非雷方块中填充一些数字。某一个具体数字表示与其紧邻的8个方块中有多少雷方块。玩家可以根据这些信息去判断是否可以打开某些方块,并把认为是地雷的方块打上标识。如果某个数字方块周围的地雷全都标记完,可以指向该方块并同时点击鼠标左右键,将其周围剩下的方块挖开。如果编号方块周围地雷没有全部标记,在同时点击鼠标左右键时,其他隐藏或未标记的方块将被按下一次(即闪烁一下)。当玩家将所有地雷找出后,其余的非雷方块区域都已打开,此时游戏胜利。在游戏过程中,一旦

4、错误地打开了雷方块则立即失败,游戏结束;当玩家标识的地雷数超过程序设定,虽然打开了全部其余方块,游戏仍然不会结束。2.2系统应具备的基本功能1、从外观上分析:菜单方块地雷数目显示计时器有雷标识无雷标识红叉显示胜利画面失败画面2、从操作上分析鼠标事件:点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止,并显示雷的数目。 点击鼠标右键于未知区域,则显示小红叉,将其置为有雷。在该位置再次点击右键则视为取消设置,红叉消失。 菜单设置:点击菜单可以选择重置现在的雷区,选择设置可以设置雷区的大小和雷得数目2.

5、3开发环境及工具 Windos XP系统、Ecliipse 6以上3系统总体设计3.1基本简介(1) 扫雷游戏可以自己设置扫雷区域的大小、地雷的数目。(2) 设置好后将出现相应的扫雷区域,这时用户可以开始点击雷区。(3) 用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。(4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。(5) 扫雷失败后。用户可以选择继续。3.2

6、功能模块设计布雷鼠标事件鼠标左击事件流程图(1)点击未知区域。(2)是地雷,游戏结束。(3)不是地雷,判断周围地雷数目是否为0,为0则显示空白格子,并拓展周围格子,不为0则显示地雷数空白格子拓展 4 系统流程与实现4.1系统流程4.2游戏界面介绍布雷方法private void SetBomb(int count) int counter = 0;int tempint;while(counter != count) tempint = (int) (Math.random()*(this.myRows * this.myColumns);if(!this.myButtontempint.Ge

7、tStatus() this.myButtontempint.SetStatus(true);counter+;监听点击扫雷方法private void CheckButton(ExtendButton TempButton) if(TempButton.GetStatus() this.timer.stop();JOptionPane.showMessageDialog(null, You Failed!, Game,JOptionPane.INFORMATION_MESSAGE);this.ShowBomb();int i = JOptionPane.showConfirmDialog(n

8、ull, 是否要继续?, 消息, JOptionPane.YES_NO_OPTION);if(JOptionPane.YES_OPTION = i) SetExtendButton(); else this.dispose();return;int CircleNum = new int8;int temp = 0;if(!TempButton.GetVisited() CircleNum0 = TempButton.GetPostion() - this.myColumns - 1;CircleNum0 = (CircleNum0 0 | (CircleNum0 + 1) % this.my

9、Columns = 0) ? -1 : CircleNum0;CircleNum1 = TempButton.GetPostion() - this.myColumns;CircleNum1 = (CircleNum1 0) ? -1 : CircleNum1;CircleNum2 = TempButton.GetPostion() - this.myColumns + 1;CircleNum2 = (CircleNum2 (this.myRows * this.myColumns - 1) | (CircleNum5 + 1) % this.myColumns = 0) ? -1 : Cir

10、cleNum5;CircleNum6 = TempButton.GetPostion() + this.myColumns;CircleNum6 = (CircleNum6 (this.myRows * this.myColumns - 1) ? -1 : CircleNum6;CircleNum7 = TempButton.GetPostion() + this.myColumns +1;CircleNum7 = (CircleNum7 (this.myRows * this.myColumns - 1) | CircleNum7 % this.myColumns = 0) ? -1 : C

11、ircleNum7;for (int i = 0; i 8; i+) if(CircleNumi != -1) if(myButtonCircleNumi.GetStatus() & !myButtonCircleNumi.GetVisited() temp+;总结在程序代码基本完成后,经过不断的调试和修改,最后测试本次所设计的扫雷游戏能够正常运行,没有出现明显的错误和漏洞,但是在一些细节方面仍然需要完善,比如在游戏中可以假如一些声音的提示,在游戏完成和失败的时候弹出一些小的Flash动画,还有就是可以完善一下扫雷英雄榜等等。总的来说本次设计在功能上已经基本达到要求,在其他细节方面有待以后完善

12、。通过这次比较完整的一个程序的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基本知识,解决实际问题的能力,同事也提高我查阅文献资料、对程序整体的把握等其他能力水平,并且通过对整体的掌控,对局部的取舍,以及对细节的处理,都使我的能力得到了锻炼,经验得到了丰富。 各种组件的运用,各种算法的应用,各种控件的利用我都是随着设计的不断深入而不断的熟悉并逐步掌握的。和老师以及同学的沟通更使我对程序整体的规划与设计有了新的认识,也对自己提出了新的要求。提高是有限的但提高也是全面的,正是这一次设计让我积累了许多实际经验,也必然会让我在未来的工作学习中表现出更高的应变能力和理解力。参考文献陆迟Java语言程序设计(第2版)北京:电子工业出版社,200812叶核亚,陈立Java2程序设计实用教程北京:电子工业出版社,20035焦玲,王兴玲Java程序设计北京:中国铁道出版社,20063贾素玲,王强Java编程基础北京:高等教育出版社,20054聂哲,袁梅冷,杨淑萍Java面向对象程序设计北京:高等教育出版社,20056

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!