收藏 分享(赏)

Java程序设计综合实验报告[郭佳组]new.doc

上传人:dzzj200808 文档编号:2241819 上传时间:2018-09-07 格式:DOC 页数:9 大小:126.50KB
下载 相关 举报
Java程序设计综合实验报告[郭佳组]new.doc_第1页
第1页 / 共9页
Java程序设计综合实验报告[郭佳组]new.doc_第2页
第2页 / 共9页
Java程序设计综合实验报告[郭佳组]new.doc_第3页
第3页 / 共9页
Java程序设计综合实验报告[郭佳组]new.doc_第4页
第4页 / 共9页
Java程序设计综合实验报告[郭佳组]new.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、黑龙江大学软件学院 Java 小组(郭佳组)共青团黑龙江大学软件学院 Java 小组(郭佳)组制作Java 程序设计程序设计 综合实验报告综合实验报告学院 软件学院年级 2011级学号 20113743, 20112389, 20112321,20112274, 20112285, 20112263姓名 组长:郭佳组员: 杨宏枫、杨红雪、姜海南、张一男、何宏达指导教师 陈立岩项目名称 扫雷游戏开发报告日期 2012年 12月 10日得 分组长: 郭佳: 组员: 杨宏枫 杨红雪 张一男 何宏达 姜海南 黑龙江大学计算机科学技术学院、软件学院黑龙江大学计算机科学技术学院、软件学院黑龙江大学计算机科

2、学技术学院、软件学院黑龙江大学软件学院 Java 小组(郭佳组)-1- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作一、前言1、项目背景开发软件:扫雷游戏项目任务提出者:陈立岩老师项目开发者:2011 级软件六班郭佳小组用户:尊敬的陈老师以及各位评分老师和小组开发人员实现软件的单位:2011 级软件六班郭佳小组2、目标和意义随着软件开发就业的压力逐渐增大,对学生的动手能力要求较高,作为软件专业的学生必须要拥有足够的能力去面对当前的形式,我们就必须去锻炼自己,锻炼自己的实践能力,自己和同学开发扫雷游戏就是锻炼自己的一个机会,扫雷使我们 Java开发的一个开端,他是一个简单的小游戏,比较

3、简单,主要实现界面设计、消息响应、Java 的类的应用,还能让我们对软件开发流程进一步了解3、开发分工及进度安排1)分工:界面设计:杨红雪、何宏达图片选择以及处理:杨宏枫、杨红雪、郭佳(组长)实验报告制作:杨宏枫游戏算法:张一男、姜海南事件的实现以及各部分整合:郭佳(组长)游戏级别设计(初级、中级、高级):郭佳(组长)游戏帮助、游戏英雄榜、退出、游戏的自定义模式:杨宏枫2)进度安排首先要求界面设计在第一周之内完成,主要部件以及雷盘及相关按钮必须实现;在此期间图片选择以及处理必须将图片选择好并且将图片 Ps好,准备用于游戏点击效果的开发,同时游洗算法要进行构思、如何实现;第二周上交自己的负责部分

4、,事件的实现负责将每个按钮添加监听器,让事件得以实现,同时负责游戏级别部分设计,以及负责游戏帮助、英雄榜、退出、游戏的自定义模式要在 2-3周之内完成负责部分;其次所有模块上交到组长,组长负责整合大家的模块,在整合期间如有问题大家随时帮助解决;最后所有模块都完成,扫雷游戏基本开发完毕,大家要分别讲出自己开发、设计的思想以及在实现过程中所遇到的困难如何解决的、这样有利于大家了解整个开发的过程;设想自己能不能单独开发一个游戏、总结自己在其中所收获的知识;黑龙江大学软件学院 Java 小组(郭佳组)-2- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作二、功能分析1、主要模块1)制作界面(菜

5、单、计时器、笑脸、雷盘)2)给按钮添加动作3)造雷4)设计点击效果(为了测试雷)5)设置右点击效果(添加计雷器)6)制作扩散效果(扩散到雷的周围时要把雷数显示出来)7)制作 Win Lose的效果8)设置系统栏功能(初级、中级、高级、退出)9)设置帮助10)添加计时器11)制作 Win、Lose 帮助对话框2、系统操作在安装 Eclipse、UE、My Eclipse、Jcreator 时要注意环境变量的配置,设置ClassPath、Javahome 等。3、系统配置需要安装 Java的开发环境例如 Eclipse、UE、My Eclipse、Jcreator。4、限制与条件由于所学知识的限制

6、,很多想到的功能不能实现,例如想给游戏中添加背景音乐,制作出玩家输赢时的音乐效果,希望在以后的学习中能够加以完善。三、关键功能的设计与实现1、数据结构除了部分的类(Class)外,扫雷程序没有涉及到比较复杂的数据结构,界面区域也只采用了数组的存储黑龙江大学软件学院 Java 小组(郭佳组)-3- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作2、流程图扫雷开始游戏者点击鼠标爆炸Lose点击的方格有雷?打开该方块显示该方块周围的雷数YN3、关键代码介绍周围雷数 :void buLei()int count=0;int i,j;while(count10)i=(int)(Math.rand

7、om()*9);j=(int)(Math.random()*9);if(shusij!=9) shusij=9;count+;for(i=0;i9;i+)for(j=0;j9;j+)ksij=0;扫雷开始线程(点击鼠标)if(方块有雷)then爆炸;Game over;else打开方块;显示该方块周围的雷数;黑龙江大学软件学院 Java 小组(郭佳组)-4- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作界面:class Frame1 extends JFrameprivate static final long serialVersionUID = 87858045013792894

8、27L;面板 pan=new 面板();JMenuBar cd=null;JMenu dan; /菜单JMenu help;JMenuItem kaishi; /菜单项JMenuItem chuji;JMenuItem zhongji;JMenuItem gaoji;JMenuItem zidingyi;JMenuItem guanyu;JMenuItem yingxiong;JMenuItem tuichu;Frame1()cd=new JMenuBar();dan = new JMenu(“游戏“); /菜单help = new JMenu(“帮助“);kaishi = new JMenu

9、Item(“开局“); /菜单项chuji = new JMenuItem(“初级“);zhongji = new JMenuItem(“中级“);gaoji = new JMenuItem(“高级“);zidingyi = new JMenuItem(“自定义“);yingxiong = new JMenuItem(“扫雷英雄榜“);tuichu = new JMenuItem(“退出“);guanyu = new JMenuItem(“关于扫雷“);cd.add(dan);cd.add(help);dan.add(kaishi);dan.addSeparator();/横杠dan.add(

10、chuji);dan.add(zhongji);dan.add(gaoji);dan.addSeparator();dan.add(zidingyi);dan.addSeparator();dan.add(yingxiong);dan.addSeparator();dan.add(tuichu);黑龙江大学软件学院 Java 小组(郭佳组)-5- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作help.add(guanyu);this.setJMenuBar(cd);/快捷键设置chuji.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.V

11、K_B,InputEvent.CTRL_MASK);zhongji.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,InputEvent.CTRL_MASK);gaoji.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK);zidingyi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK);yingxiong.setAccelerator(KeyS

12、troke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK);tuichu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK);guanyu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);kaishi.addActionListener(new ActionListener()public void actionPerformed(ActionEven

13、t e)/TODO:菜单事件处理if (e.getSource() = kaishi)yx.kaiju();/new YouXi();repaint(););guanyu.addActionListener(new ActionListener()黑龙江大学软件学院 Java 小组(郭佳组)-6- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作public void actionPerformed(ActionEvent e)/显示对话框JOptionPane.showOptionDialog(null,“程序名称:n扫雷n“+“程序设计:n小组n“+“简介:n模拟XP扫雷游戏 n“,

14、“关于 扫雷“,JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE,null,null,null););yingxiong.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)yingxiongs(););this.getContentPane().add(pan);this.repaint();void yingxiongs() int cj=999;int zj=999;int gj=999;String cjname

15、=“匿名“;String zjname=“匿名“;String gjname=“匿名“;JFrame jf=new JFrame();JLabel ja1=new JLabel(“初级: “+cj+“ 秒“);JLabel ja2=new JLabel(“中级: “+zj+“ 秒“);JLabel ja3=new JLabel(“高级: “+gj+“ 秒“);JLabel jc1=new JLabel(cjname);JLabel jc2=new JLabel(zjname);JLabel jc3=new JLabel(gjname);JButton ja=new JButton(“重新计分“

16、);JButton jb=new JButton(“确定“);Font font=new Font(“黑体“,Font. BOLD,13);ja1.setFont(font);jc1.setFont(font);ja2.setFont(font);jc2.setFont(font);ja3.setFont(font);jc3.setFont(font);黑龙江大学软件学院 Java 小组(郭佳组)-7- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作ja.setFont(font);jb.setFont(font);jf.setSize(270,165); /设置窗体大小jf.setL

17、ocation(500,230);jf.setTitle(“扫雷英雄榜“);jf.setLayout(null);ja1.setBounds(14, 25, 95, 15);jc1.setBounds(155, 25, 45, 15);ja2.setBounds(14, 43, 95, 15);jc2.setBounds(155, 43, 45, 15);ja3.setBounds(14, 61, 95, 15);jc3.setBounds(155, 61, 45, 15);ja.setLocation(40, 90);ja.setSize(95, 25);jb.setLocation(175

18、, 90);jb.setSize(65, 25);jf.add(ja1);jf.add(jc1);jf.add(ja2);jf.add(jc2);jf.add(ja3);jf.add(jc3);jf.add(ja);jf.add(jb);jf.setVisible(true);jf.setResizable(false);雷数显示域:public boolean anWo(int mx, int my) Rectangle rect=new Rectangle(11,55,16*9,16*9);/Rectangle 指定了坐标空间中的一个区域,return rect.contains(mx,

19、my); /通过 Rectangle 对象的左上顶点的坐标(x,y)、 /宽度和高度可以定义这个区域。/contains(int x, int y) 检查此 Rectangle 是否包含指定位置的点(x,y)。菜单面板:面板 extends JPanelprivate static final long serialVersionUID = -704678321802234236L;黑龙江大学软件学院 Java 小组(郭佳组)-8- 共青团黑龙江大学软件学院 Java 小组(郭佳)组制作鼠标监听器 sb = null;面板()sb = new 鼠标监听器();this.addMouseList

20、ener(sb);this.addMouseMotionListener(sb);1.窗口及算法实现类: class LQ extends JFrame implements ActionListener,MouseListener四、项目开发总结1、收获与体会通过扫雷游戏的开发,让我们学习软件工程的同学理解了游戏开发的整个流程,以及怎么将项目模块,首先将其模块化,把一个整体的项目分为若干个小的部分,这样有利于项目的顺利进行,同时又增加了整个开发的进程;本次游戏的制作让我们对课本所学的知识充分得到了运用,尤其是对 Java中 GUI的运用,以及 Java中类库的使用,也充分的体会到了团队合作的

21、力量,在游戏的开发过程中,我认为软件开发是一个团队的合作,如果要想团队合作的更加顺利,就要求大家对自己负责的模块认真负责,自己写的代码不仅自己理解,而且一定要规范的、标准让其他的成员能够很容易的读懂你写的代码,通过本次游戏的开发,大家的动手能力增强了、实践能力增强了、而且对本行业产生了兴趣,这就是我们组的最大的收获。2、不足之处及进一步改进思路1)对 Java类库的使用不够熟练,在开发的过程中过于依赖书本,以及参考大量文献2)对开发过程中出现的常见错误查找不够熟练,以后需要多多的敲代码,做到常见错误能够很容易的找出来。3)界面的设计不够漂亮,需要对 Java中的类做更多的了解4)在开发的过程中应该多注意一些细节的问题,提高自己编程能力养成良好的编程习惯。5)可以改进的地方是可以让玩家自己选择雷盘的区域、游戏的分辨率、以及雷的数目、完成游戏的时间、以及登陆信息的注册、在游戏中添加声音等等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报