您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Java程序设计综合实验报告[郭佳组]
黑龙江大学软件学院Java小组(郭佳组)共青团黑龙江大学软件学院Java小组(郭佳)组制作《Java程序设计》综合实验报告学院软件学院年级2011级学号20113743,20112389,20112321,20112274,20112285,20112263姓名组长:郭佳组员:杨宏枫、杨红雪、姜海南、张一男、何宏达指导教师陈立岩项目名称扫雷游戏开发报告日期2012年12月10日得分组长:郭佳:组员:杨宏枫杨红雪张一男何宏达姜海南黑黑黑龙龙龙江江江大大大学学学计计计算算算机机机科科科学学学技技技术术术学学学院院院、、、软软软件件件学学学院院院黑龙江大学软件学院Java小组(郭佳组)-1-共青团黑龙江大学软件学院Java小组(郭佳)组制作一、前言1、项目背景开发软件:扫雷游戏项目任务提出者:陈立岩老师项目开发者:2011级软件六班郭佳小组用户:尊敬的陈老师以及各位评分老师和小组开发人员实现软件的单位:2011级软件六班郭佳小组2、目标和意义随着软件开发就业的压力逐渐增大,对学生的动手能力要求较高,作为软件专业的学生必须要拥有足够的能力去面对当前的形式,我们就必须去锻炼自己,锻炼自己的实践能力,自己和同学开发扫雷游戏就是锻炼自己的一个机会,扫雷使我们Java开发的一个开端,他是一个简单的小游戏,比较简单,主要实现界面设计、消息响应、Java的类的应用,还能让我们对软件开发流程进一步了解3、开发分工及进度安排1)分工:界面设计:杨红雪、何宏达图片选择以及处理:杨宏枫、杨红雪、郭佳(组长)实验报告制作:杨宏枫游戏算法:张一男、姜海南事件的实现以及各部分整合:郭佳(组长)游戏级别设计(初级、中级、高级):郭佳(组长)游戏帮助、游戏英雄榜、退出、游戏的自定义模式:杨宏枫2)进度安排首先要求界面设计在第一周之内完成,主要部件以及雷盘及相关按钮必须实现;在此期间图片选择以及处理必须将图片选择好并且将图片Ps好,准备用于游戏点击效果的开发,同时游洗算法要进行构思、如何实现;第二周上交自己的负责部分,事件的实现负责将每个按钮添加监听器,让事件得以实现,同时负责游戏级别部分设计,以及负责游戏帮助、英雄榜、退出、游戏的自定义模式要在2-3周之内完成负责部分;其次所有模块上交到组长,组长负责整合大家的模块,在整合期间如有问题大家随时帮助解决;最后所有模块都完成,扫雷游戏基本开发完毕,大家要分别讲出自己开发、设计的思想以及在实现过程中所遇到的困难如何解决的、这样有利于大家了解整个开发的过程;设想自己能不能单独开发一个游戏、总结自己在其中所收获的知识;黑龙江大学软件学院Java小组(郭佳组)-2-共青团黑龙江大学软件学院Java小组(郭佳)组制作二、功能分析1、主要模块1)制作界面(菜单、计时器、笑脸、雷盘)2)给按钮添加动作3)造雷4)设计点击效果(为了测试雷)5)设置右点击效果(添加计雷器)6)制作扩散效果(扩散到雷的周围时要把雷数显示出来)7)制作WinLose的效果8)设置系统栏功能(初级、中级、高级、退出)9)设置帮助10)添加计时器11)制作Win、Lose帮助对话框2、系统操作在安装Eclipse、UE、MyEclipse、Jcreator时要注意环境变量的配置,设置ClassPath、Javahome等。3、系统配置需要安装Java的开发环境例如Eclipse、UE、MyEclipse、Jcreator。4、限制与条件由于所学知识的限制,很多想到的功能不能实现,例如想给游戏中添加背景音乐,制作出玩家输赢时的音乐效果,希望在以后的学习中能够加以完善。三、关键功能的设计与实现1、数据结构除了部分的类(Class)外,扫雷程序没有涉及到比较复杂的数据结构,界面区域也只采用了数组的存储黑龙江大学软件学院Java小组(郭佳组)-3-共青团黑龙江大学软件学院Java小组(郭佳)组制作2、流程图3、关键代码介绍周围雷数:voidbuLei(){intcount=0;inti,j;while(count10){i=(int)(Math.random()*9);j=(int)(Math.random()*9);if(shus[i][j]!=9){shus[i][j]=9;count++;}}for(i=0;i9;i++){for(j=0;j9;j++){ks[i][j]=0;}扫雷开始游戏者点击鼠标爆炸Lose点击的方格有雷?打开该方块显示该方块周围的雷数YN扫雷开始线程(点击鼠标){if(方块有雷)then爆炸;Gameover;else{打开方块;显示该方块周围的雷数;}}黑龙江大学软件学院Java小组(郭佳组)-4-共青团黑龙江大学软件学院Java小组(郭佳)组制作}}界面:classFrame1extendsJFrame{privatestaticfinallongserialVersionUID=8785804501379289427L;面板pan=new面板();JMenuBarcd=null;JMenudan;//菜单JMenuhelp;JMenuItemkaishi;//菜单项JMenuItemchuji;JMenuItemzhongji;JMenuItemgaoji;JMenuItemzidingyi;JMenuItemguanyu;JMenuItemyingxiong;JMenuItemtuichu;Frame1(){cd=newJMenuBar();dan=newJMenu(游戏);//菜单help=newJMenu(帮助);kaishi=newJMenuItem(开局);//菜单项chuji=newJMenuItem(初级);zhongji=newJMenuItem(中级);gaoji=newJMenuItem(高级);zidingyi=newJMenuItem(自定义);yingxiong=newJMenuItem(扫雷英雄榜);tuichu=newJMenuItem(退出);guanyu=newJMenuItem(关于扫雷);cd.add(dan);cd.add(help);dan.add(kaishi);dan.addSeparator();//横杠dan.add(chuji);dan.add(zhongji);dan.add(gaoji);dan.addSeparator();dan.add(zidingyi);dan.addSeparator();dan.add(yingxiong);dan.addSeparator();dan.add(tuichu);help.add(guanyu);黑龙江大学软件学院Java小组(郭佳组)-5-共青团黑龙江大学软件学院Java小组(郭佳)组制作this.setJMenuBar(cd);//快捷键设置chuji.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_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(KeyStroke.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(newActionListener(){publicvoidactionPerformed(ActionEvente){//TODO:菜单事件处理if(e.getSource()==kaishi){yx.kaiju();//newYouXi();repaint();}}});guanyu.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){黑龙江大学软件学院Java小组(郭佳组)-6-共青团黑龙江大学软件学院Java小组(郭佳)组制作//显示对话框JOptionPane.showOptionDialog(null,程序名称:\n扫雷\n+程序设计:\n小组\n+简介:\n模拟XP扫雷游戏\n,关于扫雷,JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE,null,null,null);}});yingxiong.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){yingxiongs();}});this.getContentPane().add(pan);this.repaint();}voidyingxiongs(){intcj=999;intzj=999;intgj=999;Stringcjname=匿名;Stringzjname=匿名;Stringgjname=匿名;JFramejf=newJFrame();JLabelja1=newJLabel(初级:+cj+秒);JLabelja2=newJLabel(中级:+zj+秒);JLabelja3=newJLabel(高级:+gj+秒);JLabeljc1=newJLabel(cjname);JLabeljc2=newJLabel(zjname);JLabeljc3=newJLabel(gjname);JButtonja=newJButton(重新计分);JButtonjb=newJButton(确定);Fontfont=newFont(黑体,Font.BOLD,13);ja1.setFont(font);jc1.setFont(font);ja2.setFont(font);jc2.setFont(font);ja3.setFont(font);jc3.setFont(font);ja.setFont(font);黑龙江大学软件学院Java小组(郭佳组)-7-共青团黑龙江大学软件学院Java小组(郭佳)组制作jb.setFont(font);jf.setSize(270,165);//设置窗体大小jf.setLocation(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,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);
本文标题:Java程序设计综合实验报告[郭佳组]
链接地址:https://www.777doc.com/doc-2878886 .html