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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(Java课程设计动物换位有背景音乐调色板英雄排行榜Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java课程设计动物换位有背景音乐调色板英雄排行榜Word格式.docx

1、基于Java的动物换位游戏软件设计实践教学要求与任务:采用java技术设计动物换位游戏软件,设计要求如下:(1)程序分为3个级别,用户可以通过界面上提供的菜单来选择“初级”、“中级”和“高级”这三个级别。对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物。(2)用鼠标单击一个动物,如果该动物的前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物

2、,但隔位上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃(跳跃时不能超过2块石头)。(3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。(4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。(5)可以随时单击界面上提供的按钮,重新开始当前的级别。(6)用户通过菜单选项,可以选择左、右动物的图像。工作计划与进度安排: 第18周:布置课程设计任务,查阅资料,分组设计,程序调试。 第19周:程序调试,编写课程设计报告,验收,答辩。指导教师: 2012年 月 日专业负责人:学院教学副院长:Java课程设计1设计目的设计 GUI 界面的动物换位游戏,游戏

3、的结果是让左右两组动物交换位置。具体要求 如下:(1)程序分为 3 个级别,用户可以通过界而上提供的菜单来选择初级、中级和高级这 3 个级别。对于级别,在水平排列的 7 块石头上的左右各有 3 个类型相同的动物中,间的石头上没有动物;级别,在水平排列的 9 块石头上的左右各有 4 个类型相同的动物,中间的石头上没有动物;级别,在水平排列的 11 块石头上的左右各拥有 5 个类型相同的动物,中间的石头上没有动物。(2)用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但相隔的位置上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上

4、,其他情形时,该动物不跳跃或跳跃时不能越过 2 块石头。(3)左方的动物只能向右方跳跃,右方的动物只能向左方跳跃。(6)用户通过菜单选项,可以选择左、右方动物的图像。2总体设计在设计动物换位时,需要编写 9个 Java 源文件: ChangeAnimal Window. java 、Point.java 、Animal.java、Stone.java 、HandleMouse.java ,sound.java, showRecord.java,Record.java和 AutoMoveAnimal.java。动物换位除了需要编写的上述 9 个 Java 源文件所给出的类外,还需要 Java 系

5、统提供的一些重要的类,如 JMenultem,File 和 Button 类。动物换位所用到的一些重要的类以及之间的组合关系如图所示2.1ChangeAnimalWindow. java ( 主类)ChangeAnimalWindow 类负责创建动物换位的主窗口,该类含有main方法,程序从该类开始执行。ChangeAnimal Window类的成员变量中有五种重要类型的对象: Animal、Point、Stone、HandleMouse 和AutoMoveAnimal 对象。ChangeAnimalWindow 将在后面的详细设计中阐述。ChangeAnimalWindow 类创建的窗口以及

6、其中的主要成 图2.1.1类之间组合关系成员对象如图 2.1.2所示 图2.1.2 ChangeAnimalWindow窗口及主要成员变量2.2 Animal.javaAnimal 类是 JPanel的一个子类,创建的对象是ChangeAnimalWindow 类的重要成员之一,用来表示动物2.3 Point.javaPoint类负责创建确定位血的对象.使用 Point对象 .可以确定 Animal 以及 Stone 对象在铜体巾的位置2.4 Stone.javaStone类是 JButton的一个手挠,创建的对象表示石头”。2.5 HandleMouse.javaHandleMouse类所创

7、建的对象负责处理鼠标事件。2.6 AutoMoveAnimal.javaAutoMoveAnimal类所创建的对象使用算法完成动物的自动换位。2.7 Sound.javaSound类所创建的对象是为了给游戏添加背景音乐。对于点不同的按钮可以播放不同的音乐,增加了游戏的人性化。2.8 ShowRecord.javaShowRecord 创建界面负责显示个人记录,自己在的得分和排名情况。2.9 record.java 创建对象为了加入成绩界面。3程序流程及主要代码3.1ChangeAnimalWindow类3.1.1 效果图ChangeAnimalWindow 创建的窗口效果如图 3.1.1 所示

8、. 图3.1.1主类ChangeAnimalWindow创建的窗口效果3.1.2 U M L 图ChangeAnimalWindow 类是javax.swing包JFrame的 一 个 子类, 并实 现 了ActionListener接口,标明该类的主要成员变是和方法的 UML图,如图4. 4 所示。 以下是 U M L 图中有关方法的详细说明. 图 3.1.2 ChangeAnimalWindow UML示图 3.1.3 成 员 变 量 amountOfAnimal是Int型数据,默认值 是6. amountOfAnimal的值用来 确定ChangeAnimalWindow窗体中的数目,即

9、Animal对象的数目。 distance 是 int型数据,默认值是 80.distance 的值用来确定 Point 对象之间的距离,进而可以确定 Animal 之间,Stone 之间的距离以及 Animal 和 Stone 对象外观的 大小。 animal 是 Animal 型数组,其长度为 amountOfAnima l。 Point 是 Point 型数组,其长度为 amountOfAnimal +1。 Stone 是 Stone 型数组,其长度为 amountOfAnimal +1。 HandleMouse 是 HandleMouse 类创建的鼠标事件监视器,用来监视 animal

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

11、 们的名字 依次为和 .高级,这 三 个菜单项被添加到菜单项 menuGrade 中。LeftImage、rightImage和defa ultImage也是JMenultem创建的菜单项,其名字依次为左面动物的图像右面动物的图像左右面的动物的默认图像,这 三个菜单项被添加到菜单项 menumage 中。oneGradeItem ,twoGradeItem和1 threeGradeItem 以及 leftImage、rightImage 和 defaultImage 都将当前窗口注册为向己的ActionEvcnt 事件监视器。 renew、 quit 和 autoButton 是 JButto

12、n创建的按钮对象,名字依次为重新开始撤销自动演 示 Renew 、quit和autoButton都将在当前接口注册为自己的 ActionEvent 事件监视器。3.1.4 方 法 ChangcAnimalWindow()是构造方法,负责完成窗口的初始化。init( )方法负责完成 Animal Stone Point对象的创建。 setamountOfAnimal(int)方法负责设置动物的个数,即 amountOfAnimal的值。 removeAnimal AndStone()方法负责从窗体中移掉动物和石头,即移掉 Animal 对象 和 Stone 对象。 needDoing( ) 方法

13、负责执行一些经常需要重复执行的代码。 ActionPerformed( ActionEvent) 方法是ChangeAnimalWindow类实现的 ActionListener接口中的方法。ChangeAnimalWindow 创建的窗口是 oneGradeltem,twoGradeItem、 threeGradeItem 、leftImage 、rightImage defaultImage 菜单项和 renew quit autoButton 按组的 ActionEvent 事件监视器。当用户选中某个菜单项或单击按钮时,筒口将执行 actionPerformed ( ActionEven

14、t ) 方法进行相应的操作。如果用户选中oneGradeItem 、twoGradeItem 和threeGradeItem三个菜单项的某 一 项时,actionPerformed ( ActionEvent ) 方法所执行的操作就是改变 amountOfAnimal的值,_执行 needDoing()方法,完成必要的初始化。如果用户选中leftlmage和rightImage 菜单项的某一个时,actionPerformed(ActionEvent)方法所执行的操作就是改变leftIm ageFile和rightImageFile的引用。当 用户单击 renew 按钮时,actionPerf

15、ormed (ActionEvent) 方法所进行的操作是保持当前的amountofAnimal的值,并执行needDoing()方法,完 成必要的初始化,当用户单击 quit 按钮时, ActionPeform ed (ActionEve nt) 方法所进行的操作是撤销当前的前一次跳跃。当用户单击autoButton按钮时,action Performed (ActionEvent)方法所进行的操作是弹出 autoMoveAnimal对话框,用用户可以通过该对话框让程序显示动物换位过程。 main( String) 方法是程序运行的入口方法。3.1.5 源代码import javax.swi

16、ng.*;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=6; int distance=80; Animal animal; Hashtable hashtable=new Hashta

17、ble(); Point point; Stone stone; HandleMouse handleMouse; AutoMoveAnimal autoMoveAnimal;File leftImageFile,rightImageFile,heroFile; JButton renew,quit,autoButton=null; JMenuBar bar;JMenu menuGrade,menuImage,menuHero,yingyue,tui,tiao;/在菜单中定义了音乐,推出对 JMenuItem oneGradeItem,twoGradeItem,threeGradeItem;

18、JMenuItem leftIamge,rightIamge,defaultImage;JMenuItem hero,bofang1,chu,bofang2,bofang3,she; ShowRecord showHeroRecord=new ShowRecord(this,hashtable); JPanel pCenter; ChangeAnimalWindow() pCenter=new JPanel(); pCenter.setBackground(Color.lightGray); pCenter.setLayout(null); handleMouse=new HandleMous

19、e(); autoMoveAnimal=new AutoMoveAnimal(); leftImageFile=new File(dog.jpg); rightImageFile=new File(cat.jpgheroFile=new File(英雄.txt/打开英雄排行榜 init(); bar=new JMenuBar(); menuGrade=new JMenu(yingyue =new JMenu(选择音乐tui=new JMenu(退出游戏tiao=new JMenu(背景颜色 menuImage=new JMenu(选择动物图像(JPG,GIF)menuHero=new JMen

20、u(游戏英雄榜 oneGradeItem=new JMenuItem( twoGradeItem=new JMenuItem( threeGradeItem=new JMenuItem(bofang1=new JMenuItem(播放一/在菜单设置中创建播放bofang2=new JMenuItem(播放二bofang3=new JMenuItem(播放三chu=new JMenuItem(终止she=new JMenuItem(调色she.addActionListener(this);chu.addActionListener(this);bofang1.addActionListener

21、(this);bofang2.addActionListener(this);bofang3.addActionListener(this); leftIamge=new JMenuItem( rightIamge=new JMenuItem( defaultImage=new JMenuItem(左右动物的默认图像hero=new JMenuItem(英雄hero.addActionListener(this); menuGrade.add(oneGradeItem); menuGrade.add(twoGradeItem); menuGrade.add(threeGradeItem); m

22、enuImage.add(leftIamge); menuImage.add(rightIamge); menuImage.add(defaultImage);menuHero.add(hero); bar.add(menuGrade); bar.add(menuImage);bar.add(yingyue);bar.add(tui);bar.add(tiao);tiao.add(she);yingyue.add(bofang1); /把播放添加到菜单设置中yingyue.add(bofang2);yingyue.add(bofang3);tui.add(chu);bar.add(menuHe

23、ro);setJMenuBar(bar); oneGradeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); leftIamge.addActionListener(this); rightIamge.addActionListener(this); defaultImage.addActionListener(this); renew=new JButton( renew.addActionListener(this); aut

24、oButton=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); north.add(hintMess); add(north,Bor

25、derLayout.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 AnimalamountOfAnimal; point=new

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

27、t(false);stone.length; 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(stonei); animali.setSize(distance*6/7,distance*3/4); int w=animali

28、.getBounds().width; int h=animali.getBounds().height; pCenter.add(animali);animal.length/2) animali.setLeftImage(leftImageFile); animali.repaint(); animali.setLocation(pointi.getX()-w/2,pointi.getY()-h); animali.setAtPoint(pointi); pointi.setThisAnimal(animali); pointi.setIsHaveAnimal(true); animali.setRightImage(rightImageFile); animali.setLocation(pointi+1.getX()-w/2,pointi+1.getY()-h); animali.setAtPoint(pointi+1); pointi+1.setThisAnimal(animali)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1