logo资料库

扫雷游戏课程设计.doc

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
计算机与信息工程系 《JAVA 程序设计》课程设计 扫雷游戏过程演示 专业 班级 学号 姓名 计算机类 XX 班 41 XX E-Mail XXX@qq.com 电话 时间 XXX 2011-12-28 XXX 学校
摘要: 游戏已成为人们普遍生活中不可缺少的一部分,它不仅能使人娱乐,也能够开发人的 智力,就像扫雷游戏一样能挖掘人们聪明的才干与脑袋的机灵程度。 该文介绍了利用 JAVA 语言的图形用户界面,对“扫雷游戏”的模拟。从模拟程序的 具体设计思路,到详细的实现过程,将技术的应用融入到一个有趣的问题的解决中,既可 方便完成教学内容,又可有效激发学生学习兴趣,对 JAVA 图形用户界面的案例教学实现 有很好的参考价值。 关键字:图形用户界面;Java 语言;扫雷;案例教学 1.课程设计介绍 1.1 目的: (1)复习、巩固 Java 语言的基础知识,进一步加深对 Java 语言的理解和掌握,深刻 把握 Java 技术的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和 方法解决实际问题的能力。(2)课程设计为学生提供了一个既动手又动脑,独立实践的机 会。(3)提高学生综合运用本课程所学知识的能力,将课本上的理论知识和实际相结合起 来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。(4)培 养学生在项目开发中团队合作精神、创新意识及能力。 1.2 要求: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应的功能。 (2)系统设计要实用,编程简练可用,功能全面 ;说明书、流程图要清楚 。(3)记录设计 情况,要求上机调试通过和按设计报告格式,设计上交内容:设计报告一份,源程序文件 。 (4)掌握 Java 的语言规范,面向对象的核心概念和特性;掌握编程技术,包括异常处理, 图形界面设计,多线程,网络通信程序等;掌握 Java 应用软件的开发环境和开发过程。 2. 系统设计 2.1 需求分析 (1)扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩, 即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”。 (2)选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击雷区中的任 何一个方块便启动计时器。 (3)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所 揭方块下无雷,则显示一个数字,该数字代表方块周围的 8 个方块中共有多少颗雷。 (4)如果用户认为某个方块下埋着雷,单击右键可以在方块上表示一个用户认为是雷 的图标,即给出一个扫雷标记。用户每标记一个扫雷标记(无论用户的标记是否正确), 程序将现实的剩余雷数减少一个。 (5)扫雷胜利后(用时最少者),成绩弹出保存成绩的对话框。 1
2.2 总体设计 扫雷游戏需要 Java 系统提供一些重要的类,如 JButton、JFrame、JLabel 等类。使 用图形用户界面设计有趣的游戏,可以激发学生对编程的积极性。在游戏中,分为三个级 别,参加游戏者可以任选其中一个级别;用户使用鼠标左键单击雷区中的任何一个方块便 启动计时器;用户要揭开某个方块,可单击它;单击右键可以在方块上表示一个用户认为 是雷的图标。 2.3 功能设计 (1)扫雷棋盘的布局设计 系统的整体布局为:GridLayout 布局,采用了菜单、按钮、面板......等组件,菜单 主要包括开始,选择级别,标记,扫雷英雄榜,退出,按钮的功能是重新开始新的游戏。 扫雷胜利后(用时最少者),成绩弹出保存成绩的对话框。 (2)雷区的设计 ScanLei1 类是 Javax.swing 包中 JFrame 容器的子类,实现了 ActionListener 接口, JButton 中实现了 MouseListener 接口;NormoreMouseEvent 类实现了 MouseAdapter 接口; 引入 BorderLayout 布局管理器,将窗体分隔成 NORTH、SOUTH、EAST、WEST 和 CENTER 五 个区域,并且根据窗体的大小自动调整组件的大小;使用 GUI,菜单是 GUI 的主要组件之 一,定义了菜单栏(MenuBar)、菜单(Menu)和菜单项(MenuItem),在 JMenu 包中创建了菜 单栏、菜单、菜单项对象。 3.系统各功能模块设计 开始 否 是 左键点击扫雷 该处是雷 否 数值表示周围雷数 确定此处是雷右键标记 所有的雷都被找出 是 优胜 结束 2
3.1 界面设计 3.2 功能实现 (1)选择游戏级别的运行结果: (2)参加游戏结束的运行结果: 3
4.课程设计总结和体会 通过本次的课程设计,我们终于圆满的完成了课程设计的任务,我也有不少收获,我 对 Java 这门语言有了更深刻的理解,其中,包括类、对象、接口、继承、方法以及 Java 语言中的常用包等的使用方法,特别是图形用户界面里各种组件的创建,事件处理等相关 知识。 通过本次的课程设计,巩固和加深了对 Java 的理解,认识到 Java 是计算机专业一门 重要的专业技术基础课程,还提高了我综合运用本课程所学知识的能力,而且,并不是单 纯的看看教材就能解决我们的实际问题,所以还要去查找各种我们所需要的资料,所以这 次课程设计也培养了我选用参考书、查阅手册及文献资料的能力;把学过的计算机编译原 理的知识强化,能够把课堂上学的知识通过设计的程序表示出来,加深了对理论知识的理 解;要完成一个课程设计的课题并不是一次就能编译成功的,中间会出现很多问题,改错 是个很繁琐的过程,因此培养了我独立思考、深入研究、分析问题、解决问题、理论和实 际相结合的能力。 在以后的学习过程中我将注意以下几点:1、认真上好专业实验课,在实践中锻炼自 己。2、写程序的过程要考虑周到。3、在做设计的时候要有信心,有耐心。4、认真学习 课本知识,掌握课本中的知识点,在此基础上学会灵活运用。 5.致谢 感谢老师对我们 Java 课程及实验的悉心指导,正是因为老师在实验课上的指导,让 我能够把书本上的知识化成自己的知识,并运用在编程过程中。 感谢同学在我的设计过程中提出的宝贵意见,由于我的程序代码编写知识相对薄弱, 因此编写过程中遇到了很多的问题,如果没有他们的帮助,我在设计过程中出现的一些错 误可能无法迅速查出解决,你们的帮助为我解决了难题。 对于老师和同学的帮助,我在此表以衷心的感谢! 参考文献 [1]耿祥义.Java 大学实用教程.北京:清华大学出版社,2009. [2]王鹏.Java Swing 图形界面开发与案例详解.北京:清华大学出版社,2008. [3]丁振凡.Java 语言实验教程.北京:北京邮电大学出版社,2005. [4]郑莉.Java 语言程序设计.北京:清华大学出版社,2006. 4
附录 1. 在菜单项目中创建三个菜单对象的功能模块程序清单: JMenuBar menuBar=new JMenuBar(); JMenu menu1=new JMenu("游戏"); JMenu menu2=new JMenu("帮助"); JMenuItem mi1=new JMenuItem("初级"); JMenuItem mi2 = new JMenuItem("中级"); JMenuItem mi3 =new JMenuItem("高级"); mi1.addActionListener(this); menu1.add(mi1); mi2.addActionListener(this); menu1.add(mi2); mi3.addActionListener(this); menu1.add(mi3); menuBar.add(menu1); menuBar.add(menu2); 2.初级游戏的功能模块程序清单: if(e.getActionCommand()=="初级"){ row=9; col=9; bon=10; a1=new int[bon]; b=bon; //setSize(297,377); a = new int[row+2][col+2]; this.remove(p2); timer.stop(); b1.setText("10"); b2.setText("0"); b3.setText(""); btns=new JButton[row*col]; p2=new JPanel(); p2.setLayout(new GridLayout(row,col,0,0)); for(int i=0;i
btns[i].setFont(new Font(null,Font.BOLD,25)); btns[i].addActionListener(this); btns[i].addMouseListener(new NormoreMouseEvent()); p2.add(btns[i]); } contentPane.add(p2,BorderLayout.CENTER); //setSize(297,377); this.pack(); for(int i=0;i
} if(j==i){ a1[i]=m; p=0;} } } b1.setText(bon+""); b2.setText("0"); 5.布雷功能模块程序清单: for(int i=0;i
分享到:
收藏