ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:885.48KB ,
资源ID:15386186      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15386186.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Java的动物换位游戏软件设计.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于Java的动物换位游戏软件设计.docx

1、基于Java的动物换位游戏软件设计Java课程设计报告 题目: 基于Java的动物换位游戏软件设计 学 院信息学院专 业电子信息工程学生姓名班级学号 课程设计题目基于Java的动物换位游戏软件设计实践教学要求与任务:采用java技术设计动物换位游戏软件,设计要求如下:(1) 程序分为3个级别,用户可以通过界面上提供的菜单来选择“初级”、“中级”和“高级”这三个级别。对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右

2、各有5个类型相同的动物,中间的石头上没有动物。(2) 用鼠标单击一个动物,如果该动物的前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃(跳跃时不能超过2块石头)。(3) 左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。(4) 用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。(5) 可以随时单击界面上提供的按钮,重新开始当前的级别。(6) 用户通过菜单选项,可以选择左、右动物的图像。(7) 设置一个方法,可以在上面记录游戏成功者的成绩,并且把它记录下来,以便游戏

3、优胜者在以后观看。(8) 设置了一个游戏英雄榜按钮,上面有一个英雄菜单选项,按下这个选项后,可以查看成绩记录。工作计划与进度安排: 第18周:布置课程设计任务,查阅资料,分组设计,程序调试。 第19周:程序调试,编写课程设计报告,验收,答辩。指导教师: 年 月 日专业负责人: 年 月 日学院教学副院长: 年 月 日1设计目的设计 GUI 界面的动物换位游戏,游戏的结果是让左右两组动物交换位置。具体要求 如下:(1)程序分为 3 个级别,用户可以通过界而上提供的菜单来选择初级、中级和高级这 3 个级别。对于初级级别,在水平排列的 7 块石头上的左右各有 3 个类型相同的动物中,间的石头上没有动物

4、;对于中级级别,在水平排列的 9 块石头上的左右各有 4 个类型相同的动物,中间的石头上没有动物;对于高级级别,在水平排列的 11 块石头上的左右各拥有 5 个类型相同的动物,中间的石头上没有动物。(2)用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但相隔的位置上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃或跳跃时不能越过 2 块石头。(3)左方的动物只能向右方跳跃,右方的动物只能向左方跳跃。(4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。(5)可以随时单击界面上提供的按钮,重

5、新开始当前的级别。(6)用户通过菜单选项,可以选择左、右方动物的图像。 (7)设置一个方法,可以在上面记录游戏成功者的成绩,并且把它记录下来,以便游戏优胜者在以后观看。 (8)设置了一个游戏英雄榜按钮,上面有一个英雄菜单选项,按下这个选项后,可以查看成绩记 录。 队员:注释:在我们这一组中,我们分工合作,在这当中,XXX负责音乐部分,XXX背景色的转换,而我主要负责游戏英雄榜,使得当用户换位成功后,系统能保存用户的成绩到用户;当用户查看换位的最好成绩时,系统能提供读取文件数据的界面。2总体设计在设计动物换位时,需要编写 6 个 Java 源文件: ChangeAnimal Window. ja

6、va 、Point.java 、Animal.java、Stone.java 、HandleMouse.java 和 AutoMoveAnimal.java。动物换位除了需要编写的上述 6 个 Java 源文件所给出的类外,还需要 Java 系统提供的一些重要的类,如 JMenultem,File 和 JButton 类。动物换位所用到的一些重要的类以及之间的组合关系如图 2.1所示2.1 ChangeAnimalWindow. java ( 主类)ChangeAnimalWindow 类负责创建动物换位的主窗口,该类含有main方法,程序从该类开始执行。ChangeAnimal Window

7、类的成员变量中有五种重要类型的对象: Animal、Point、Stone、HandleMouse 和AutoMoveAnimal 对象。ChangeAnimalWindow 将在后面的详细设计中阐述。ChangeAnimalWindow 类创建的窗口以及其中的主要成员对象如图 2.2所示2.2 Animal.javaAnimal 类是 JPanel的一个子类,创建的对象是ChangeAnimalWindow 类的重要成员之一,用来表示动物。如图2.3所示图2.3 Animal类效果图2.3 Point.javaPoint类负责创建确定位血的对象.使用 Point对象 .可以确定 Animal

8、 以及 Stone 对象在窗体中的位置.2.4 Stone.javaStone类是 JButton的一个子类,创建的对象表示石头”。2.5 HandleMouse.javaHandleMouse类所创建的对象负责处理鼠标事件。2.6 AutoMoveAnimal.javaAutoMoveAnimal类所创建的对象使用算法完成动物的自动换位。2. 7 Record.javaRecord类是JDialog对话框的子类,当换位成功后,Record对象负责保存用户的成绩到用户。2.8 ShowRecord.javaShowRecord类是JDialog对话框的子类,当用户查看换位的最好成绩时,Show

9、Record对象负责提供读取文件数据的界面。3、程序流程及主要源代码3.1 ChangeAnimalWindow 类 ChangeAnimalWindow 创建的窗口效果如图 3.1 所示.图3.1 ChangeAnimalWindow类效果图3.1.2 U M L图ChangeAnimalWindow 类是java x. swing包JFrame的 一 个 子类, 并实 现 了ActionListener接口,标明该类的主要成员变量和方法的 UML图,如图3.2 所示。以下是 U M L 图中有关方法的详细说明.3.1.2.1 成员变量 amountOfAnimal是Int型数据,默认值 是

10、6. amountOfAnimal的值用来 确定ChangeAnimalWindow窗体中动物的数目,即 Animal对象的数目。 distance 是 int型数据,默认值是 80.distance 的值用来确定 Point 对象之间的距离,进而可以确定 Animal 之间,Stone 之间的距离以及 Animal 和 Stone 对象外观的 大小。 animal 是 Animal 型数组,其长度为 amountOfAnima l。 Point 是 Point 型数组,其长度为 amountOfAnimal +1。 Stone 是 Stone 型数组,其长度为 amountOfAnimal

11、+1。 HandleMouse 是 HandleMouse 类创建的鼠标事件监视器,用来监视 animal 数组中Animal 对象触发的鼠标事件。 auroMoveAnimal是 AutoMoveAnimal 类创建的对话框。通过该对话框可以实现程序向将左右动物交换位置。 bar 是 JMenuBar 创建的菜单条,用来添加菜单, bar 被放置在窗口的顶部。 MenuGrade 是 JMenu 创建的菜单,其名字为选择级别menuImage 也是 JMenu 创建的菜单,其名字为选择动物图像(jPG ,GIF)menuGrade和 menuImage被添加到菜单条bar中。 oneGrad

12、eItem,twoGradeItem和 threeGradeItem是JMenultem 创建的菜单项,它 们的名字 依次为初级、中级和 .高级,这 三 个菜单项被添加到菜单项 menuGrade 中。LeftImage、rightImage和defa ultImage也是JMenultem创建的菜单项,其名字依次为左面动物的图像、右面动物的图像、左右面的动物的默认图像,这 三个菜单项被添加到菜单项 menumage 中。oneGradeItem ,twoGradeItem和1 threeGradeItem 以及 leftImage、rightImage 和 defaultImage 都将当前

13、窗口注册为向己的ActionEvcnt 事件监视器。 renew、 quit 和 autoButton 是 JButton创建的按钮对象,名字依次为重新开始、撤销和自动演 示 Renew 、quit和autoButton都将在当前接口注册为自己的 ActionEvent 事件监视器。3.1.2.2 方法 ChangcAnimalWindow()是构造方法,负责完成窗口的初始化。init( )方法负责完成 Animal Stone Point对象的创建。 setamountOfAnimal(int)方法负责设置动物的个数,即 amountOfAnimal的值。 removeAnimal AndS

14、tone()方法负责从窗体中移掉动物和石头,即移掉 Animal 对象 和 Stone 对象。 needDoing( ) 方法负责执行一些经常需要重复执行的代码。 ActionPerformed( ActionEvent) 方法是ChangeAnimalWindow类实现的 ActionListener接口中的方法。ChangeAnimalWindow 创建的窗口是 oneGradeltem,twoGradeItem、 threeGradeItem 、leftImage 、rightImage defaultImage 菜单项和 renew quit autoButton 按组的 Action

15、Event 事件监视器。当用户选中某个菜单项或单击按钮时,筒口将执行 actionPerformed ( ActionEvent ) 方法进行相应的操作。如果用户选中oneGradeItem 、twoGradeItem 和threeGradeItem三个菜单项的某 一 项时,actionPerformed ( ActionEvent ) 方法所执行的操作就是改变 amountOfAnimal的值,_执行 needDoing()方法,完成必要的初始化。如果用户选中leftlmage和rightImage 菜单项的某一个时,actionPerformed(ActionEvent)方法所执行的操作就

16、是改变leftIm ageFile和rightImageFile的引用。当 用户单击 renew 按钮时,actionPerformed (ActionEvent) 方法所进行的操作是保持当前的amountofAnimal的值,并执行needDoing()方法,完 成必要的初始化,当用户单击 quit 按钮时, ActionPeform ed (ActionEve nt) 方法所进行的操作是撤销当前动物的前一次跳跃。当用户单击autoButton按钮时,action Performed (ActionEvent)方法所进行的操作是弹出 autoMoveAnimal对话框,用户可以通过该对话框让

17、程序显示动物换位过程。 main( String) 方法是程序运行的入口方法。3.1.2.3 源代码import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.ArrayList;import java.io.*;import java.util.*;import javax.swing.filechooser.*;public class ChangeAnimalWindow extends JFrame implements ActionListener int amountOfAnimal

18、=6; int distance=80; Animal animal; Hashtable hashtable=new Hashtable(); Point point; Stone stone; HandleMouse handleMouse; AutoMoveAnimal autoMoveAnimal;File leftImageFile,rightImageFile,heroFile; JButton renew,quit,autoButton=null; JMenuBar bar;JMenu menuGrade,menuImage,menuHero,yingyue; JMenuItem

19、 oneGradeItem,twoGradeItem,threeGradeItem; JMenuItem leftIamge,rightIamge,defaultImage; JMenuItem hero,bofang; ShowRecord showHeroRecord=new ShowRecord(this,hashtable); JPanel pCenter; ChangeAnimalWindow() pCenter=new JPanel(); pCenter.setBackground(Color.lightGray); pCenter.setLayout(null); handleM

20、ouse=new HandleMouse(); autoMoveAnimal=new AutoMoveAnimal(); leftImageFile=new File(dog.jpg); rightImageFile=new File(cat.jpg); heroFile=new File(英雄.txt); init(); bar=new JMenuBar(); menuGrade=new JMenu(选择级别);yingyue =new JMenu(音乐); menuImage=new JMenu(选择动物图像(JPG,GIF);menuHero=new JMenu(游戏英雄榜); oneG

21、radeItem=new JMenuItem(初级); twoGradeItem=new JMenuItem(中级); threeGradeItem=new JMenuItem(高级);bofang=new JMenuItem(播放);bofang.addActionListener(this); leftIamge=new JMenuItem(左面动物的图像); rightIamge=new JMenuItem(右面动物的图像); defaultImage=new JMenuItem(左右动物的默认图像);hero=new JMenuItem(英雄);hero.addActionListen

22、er(this); menuGrade.add(oneGradeItem); menuGrade.add(twoGradeItem); menuGrade.add(threeGradeItem); menuImage.add(leftIamge); menuImage.add(rightIamge); menuImage.add(defaultImage);menuHero.add(hero); bar.add(menuGrade); bar.add(menuImage);bar.add(yingyue);yingyue.add(bofang);bar.add(menuHero); setJM

23、enuBar(bar); oneGradeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); leftIamge.addActionListener(this); rightIamge.addActionListener(this); defaultImage.addActionListener(this);hero.addActionListener(this); renew=new JButton(重新开始); renew.ad

24、dActionListener(this); autoButton=new JButton(自动演示); autoButton.addActionListener(this); quit=new JButton(撤消); quit.addActionListener(this); JPanel north=new JPanel(); north.add(renew); north.add(quit); north.add(autoButton); String mess=互换左右动物位置; JLabel hintMess=new JLabel(mess,JLabel.CENTER); nort

25、h.add(hintMess); add(north,BorderLayout.NORTH); add(pCenter,BorderLayout.CENTER); JPanel south=new JPanel(); south.add(handleMouse); add(south,BorderLayout.SOUTH); setVisible(true); setBounds(60,60,710,300); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void init() animal=new An

26、imalamountOfAnimal; point=new PointamountOfAnimal+1; stone=new StoneamountOfAnimal+1; int space=distance; for(int i=0;ipoint.length;i+) pointi=new Point(space,100); space=space+distance; for(int i=0;ianimal.length;i+) animali=new Animal(); animali.addMouseListener(handleMouse); if(ianimal.length/2)

27、animali.setIsLeft(true); else animali.setIsLeft(false); for(int i=0;istone.length;i+) stonei=new Stone(); pCenter.add(stonei); stonei.setSize(distance*8/9,18); int w=stonei.getBounds().width; int h=stonei.getBounds().height; stonei.setLocation(pointi.getX()-w/2,pointi.getY(); pointi.setThisStone(sto

28、nei); for(int i=0;ianimal.length;i+) animali.setSize(distance*6/7,distance*3/4); int w=animali.getBounds().width; int h=animali.getBounds().height; pCenter.add(animali); if(i=2&m%2=0) amountOfAnimal=m; public void removeAnimalAndStone() for(int i=0;ipoint.length;i+) if(pointi.getThisAnimal()!=null) pCenter.remove(pointi.getThisAnimal(); for(int i=0;istone.length;i+) if(pointi.getThisStone(

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2