《JAVA课程设计任务书.doc》由会员分享,可在线阅读,更多相关《JAVA课程设计任务书.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、广西师范大学漓江学院理学系JAVA程序设计课程设计报告设计题目:基于JAVA扫雷游戏的设计组 长: 组 员: 指导教师:陈意山讲师设计时间:2011年12月25日 评阅意见:指导老师签名:年 月 日设计报告成绩(50分)演示答辩成绩(30分)过程考核成绩(20分)总分基于JAVA扫雷游戏的设计1 开发背景及意义 扫雷游戏是Windows系统自带的一个益智类的小游戏,它通过点击方格并以出现的数字来判断附近地雷的数量,将全部地雷做上标记即可胜利。经过这么多年,Windows操作系统也经过了多次的更新换代,很多的功能得到了完善 系统也越来越精致复杂。但是操作系统自带的这款扫雷小游戏还是维持着原来的样
2、子和功能,并没有因为时间的推移而被遗忘。这说明了扫雷游戏得到了很多人的喜爱和支持,才能一直存在到现在。扫雷游戏是一个益智类的小游戏,通过这个游戏我们可以提高鼠标的操作能力,还可以锻炼我们的思维能力,是一个很好的小游戏。大学里我们学到了很多相关的理论知识,但是光有理论知识是不够的,最重要的还是要有实践的能力,所以本课程设计我选择了扫雷游戏的开发与设计这个项目。此游戏的功能类似于Windows系统自带的扫雷游戏,而且在自定义雷区模块用户可以选择级别,从而提高了游戏的趣味性。2 需求分析扫雷游戏的用户群很广泛,老少皆宜。当他们在繁忙的工作学习后,可以通过这个小游戏放松心情来调节一下氛围。因此本系统的
3、设计简单容易操作,更能吸引广大用户的注意。扫雷游戏有三个级别难度,随着级别的增高,地雷数目就越多。当游戏初始化时,系统就随机布置地雷;用户开始游戏时,计时器开始计时;游戏胜利或者失败后,弹出提示对话框,计时器停止计时;在自定义模块里,用户可以选择游戏的级别,然后设置地雷的数目。3 总体设计3.1 类关系图在本系统中共使用到7个Java源文件,其关系如下:StartJMineJMineJMineArthJCounterAboutFrameJMineButtonWinFrame文件内容备注AboutFrame.java程序“关于”对话框。JCounter.java计数器类。JMine.java主程
4、序类JMineArth.java地雷分布图算法类JMineButton.javaJbutton的扩展类有行号、列号、标记标志和单击标志StartJMine.java程序入口点WinFrame.java胜利对话框,有易中难三个启动选项StartJMine.bat运行程序的批处理文件3.2 程序界面程序界面胜利对话框3.3 程序基本流程图进入界面开始扫雷设置难度扫雷成功否是打开胜利窗口3.4 JMine类是本程序的基础类。它实现的左右有:打开难度设置窗口类、About窗口类、初始化地图、运行JMineArth类以按照设定单独进行地雷埋设、自动检测挖雷、判定胜利等等。3.5 JMineArth主类其
5、中一个最重要的作用,是负责在雷区中(10*10)矩阵中埋设地雷,通过难度设置中确定的地雷个数进行循环,每循环设置一个雷,将通过获取两个随机数以确定矩阵的行和列。3.6 JCounter类是进行地雷个数的计算,方便用户使用时了解雷区地雷个数,以及已标记的地雷个数。3.7 JMinebutton类是程序窗口雷区的按钮,用于表示该地点的各种状态:未标记雷、标记有雷、显示类、显示该区域周围雷的个数等。3.8 WinFrame类设定有3个难易级别,三个难易级别依次是12、24、36个雷。4 编码和实现4.1 扫雷难易级别设置(WinFrame类)private int level;/难度级别public
6、 int getMineNum() return(level*12);/设置地雷个数分别为1*12、2*12、3*12public void mouseClicked(MouseEvent e) /System.out.println(Jerry Click);if(e.getSource() = easy) level = 1;/easy级别if(e.getSource() = middle) level = 2;/middle级别if(e.getSource() = hard) level = 3;/hard级别isOk = true;4.2 埋设地雷(JMineArth类)负责在雷区中(
7、10*10)矩阵中埋设地雷,通过难度设置中确定的地雷个数进行循环,每循环设置一个雷,将通过获取两个随机数以确定矩阵的行和列。public int mine;/雷区矩阵private void setMine(int mineNum, int Outrow, int Outcol) int col=0, row = 0, i=0;/Math.srand(now);while (i mineNum) /循环col = (int)(Math.random()*100)%10;/取0-9之间的随机数为行号row = (int)(Math.random()*100)%10; /取0-9之间的随机数为列号
8、if (minecolrow=0 & (row!=Outrow | col!=Outcol | Outrow=10 ) minerowcol=9; /如果未埋雷,则设定此位置有雷。i+;4.3 挖雷(JMine类)即用户点击雷区按钮,如果有雷即触雷;否则进行递归嵌套循环操作,以读取此处周围的地雷数量,或者自动挖雷。void checkMine(int row, int col) if (mine.mineij = 9) /判断此处是否有雷bomb(i,j);/触雷,程序结束,打开触雷程序。else if (mine.mineij = 0 & mineButtonij.getClickFlag(
9、) = false) mineButtonij.setClickFlag(true); showLabel(i,j);for (int ii= i -1; ii = i+1; ii+)/递归嵌套挖雷for (int jj = j-1; jj = j+1; jj+)checkMine(ii,jj);else showLabel(i,j);/显示此处周围地雷个数mineButtonij.setClickFlag(true);if (isWin() /判断是否获胜win();5 游戏测试游戏测试是将开发出来的游戏软件进行测试,确保游戏能够稳定地运行。测试过程中可以清楚地知道游戏程序哪里出现了错误,发
10、现问题后可以找出错误的原因并且很快地改正过来。本次扫雷游戏设计完成后,经过多次的反复运行,发现了一些小问题然后找出来进行修改,直到游戏能够正常稳定地运行,才算是基本完成了这次的扫雷游戏的设计与开发。主窗口模块测试用例用例测试数据预期结果是否进入各个程序窗口分别进入主窗口、about窗口和难度设置窗口成功设定难度分别选择三种难度,并开始扫雷,看是否存在对应的地雷数量三种难度分别有12、24、36个雷埋设地雷测试用例用例测试数据预期结果埋设地雷时数量是否准确,几率是否均等选择一种难度进行50次左右的新游戏,并始扫雷,看是否存在对应的地雷数量地雷数量准确,各区域被埋设地雷的几率似乎是平等的扫雷成功测
11、试用例用例测试数据预期结果每个区域周围的地雷数量是否准确选择一种难度进行50次左右的新游戏,并始扫雷,触雷后检查是否存在对应的地雷数量地雷数量准确点击地雷时能否触雷成功6 总结扫雷游戏的设计与开发结束后, 我学到了很多的知识,对我以后的学习和工作有很大的帮助。扫雷游戏的开发与设计最主要的是雷区的设置、地雷的布置、自定义雷区和递归扫雷这四个方面的设计,这些设计涉及到了方方面面的内容,比如各种控件的使用,如何设置它们的属性等,这些都是需要弄清楚的。 在扫雷游戏的设计与开发过程中,由于我经验不足、水平有限,对一些细节可能做的不够完善,难免有不足之处,有待改善,以后我会继续努力学习并且加强各方面的知识。在设计的过程中,每一步的思路是很重要的,这一步该做什么,下一步又该如何设计,而且还要认真仔细做好每一步,养成一个良好的习惯。当我遇到困难的时候,通过查询书本上和网上的各种相关资料,请教老师和同学,得到了认真的指导和帮助,使我能克服各种困难,顺利完成了扫雷游戏的设计与开发。我在这段期间学到了很多有用知识,提高了我的分析问题和解决实际问题的能力。7 参考文献1 耿详义,张跃平. Java课程设计(第二版)M.清华大学出版社. 2008年11月.2 陈明. Java语言程序设计M.清华大学出版社. 2010年9月.
限制150内