基于Java的动物换位游戏软件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1. 软件主要功能 (2)

2. 类总体设计 (2)

2.1 类组合关系图 (2)

2.2 系统流程图 (3)

2.3 主类 (4)

2.4 其他类 (4)

2.4.1 Animal.java (4)

2.4.2 Point.java (4)

2.4.3 Stone.java (4)

2.4.4 HandleMouse.java (4)

2.4.5 AutoMoveAnimal.java (4)

2.4.6 Customdlg.java (4)

2.4.7 People.java (4)

2.4.8 Record.java (4)

2.4.9 ShowRecordDialog.java (4)

3. 类详细设计 (4)

3.1 主类 (4)

3.2 其他类 (6)

4. 关键成员函数代码 (7)

5. 软件运行结果 (15)

结论 (16)

参考文献 (16)

1. 软件主要功能

采用java技术设计动物换位游戏软件,设计要求如下:

(1)程序分为3个级别,用户可以通过界面上提供的菜单来选择“初级”、“中级”和“高级”这三个级别。对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物。

(2)用鼠标单击一个动物,如果该动物的前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃(跳跃时不能超过2块石头)。(3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。

(4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。

(5)可以随时单击界面上提供的按钮,重新开始当前的级别。

(6)用户通过菜单选项,可以选择左、右动物的图像。

2. 类总体设计

2.1 类组合关系图

在设计动物换位时需要编写10个Java源文件:ChangeAnimalWindow.java、Animal.java、Point.java、Stone.java、HandleMouse.java、AutoMoveAnimal.java、Customdlg.java、People.java、Record.java和ShowRecordDialog.java。

动物换位除了需要编写上述10个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如:JmenuItem、File和Jbutton类等。动物换位所用到的一些重要的类以及之间组合关系如图2.1所示。

图2.1 类之间的组合关系

2.2 系统流程图

图2.2 系统流程图

2.3 主类

ChangeAnimalWindow类负责创建动物换位的主窗口,该类含有main方法,程序从该类

开始执行。

2.4 其他类

2.4.1 Animal.java

Animal类是JPanel的一个子类,创建的对象是ChangeAnimalWindow类的重要成员之一,用来表示“动物”。

2.4.2 Point.java

Point类负责创建确定位置的对象,使用Point对象,可以确定Animal以及Stone对象在窗体中的位置。

2.4.3 Stone.java

Stone类是JButton的一个子类,创建的对象表示“石头”。

2.4.4 HandleMouse.java

HandleMouse类所创建的对象负责处理鼠标事件。

2.4.5 AutoMoveAnimal.java

AutoMoveAnimal类所创建的对象使用算法完成动物的自动换位。

2.4.6 Customdlg.java

Customdlg类所创建的对象用来设置“自定义”级别的动物数量。

2.4.7 People.java

People对象封装用户的名字和成绩,以便ShowRecordDialog对象可以排序。

2.4.8 Record.java

Record类是javax.swing包中JDialog对话框的子类,当用户成功完成相应级别的游戏时,Record创建的对象负责保存用户的名字和成绩到相应的级别文件中。

2.4.9 ShowRecordDialog.java

ShowRecordDialog类是javax.swing包中JDialog对话框的子类,当用户单击查看相应的级别排行榜时,ShowRecordDialog创建的对象负责显示用户的成绩。

3. 类详细设计

3.1 主类

图3.1 ChangeAnimalWindow类的UML图

(1)成员变量

●amoutOfAnimal是int型数据,默认值是6。amoutOfAnimal的值用来确定

ChangeAnimalWindow窗体中“动物”的数目,即Animal对象的数目。

●distance是int型数据,默认值是80。distance的值用来确定Point对象之间的距离,进

而可以确定Animal之间,Stone之间的距离以及Animal和Stone对象外观的大小。

●animal是Animal型数组,其长度为amoutOfAnimal。

●point是Point型数组,其长度为amoutOfAnimal+1。

●stone是Stone型数组,其长度为amoutOfAnimal+1。

●handleMouse是HandleMouse类创建的鼠标事件监视器,用来监视animal数组中Animal

对象触发的鼠标事件。

●autoMoveAnimal是AutoMoveAnimal类创建的对话框。通过该对话框可以实现程序自

动将左右动物交换位置。

●bar是JMenuBar创建的菜单条,用来添加菜单。bar被放置在窗口的顶部。

●menuGrade是JMenu创建的菜单,其名字为“选择级别”。menuImage也是JMenu创建

的菜单,其名字为“选择动物图像(JPG,GIF)”。menuHelp也是JMenu创建的菜单,其名字为“帮助”。menuHero也是JMenu创建的菜单,其名字为“英雄榜”。menuGrade、menuImage、menuHero和menuHelp被添加到菜单条bar中。

●oneGradeItem、twoGradeItem、threeGradeItem和custom是JMenuItem创建的菜单项,

它们的名字依次为“初级”、“中级”、“高级”和“自定义”,这四个菜单项被添加到菜单项menuGrade中。leftImage、rightImage和defaultImage也是JMenuItem创建的菜单项,其名字依次为“左面动物的图像”、“右面动物的图像”和“左右面动物的默认图像”,这三个菜单项被添加到菜单项menuImage中。oneGradeResult、twoGradeResult、

threeGradeResult、customGradeResult和limitTime也是JMenuItem创建的菜单项,其名字依次为“初级英雄榜”、“中级英雄榜”、“高级英雄榜”、“自定义英雄榜”、“我超时了吗”,这五个菜单项被添加到菜单项menuHero中。helpcontent和aboutUs是JMenuItem 创建的菜单项,它们的名字依次为“游戏规则”、和“关于我们”,这两个菜单项被添加到菜单项menuHelp中。oneGradeItem、twoGradeItem、threeGradeItem和custom以及leftImage、rightImage和defaultImage等菜单项都将当前窗口注册为自己的ActionEvent 事件监视器。

renew、quit和autoButton是JButton创建的按钮对象,名字依次为“重新开始”、“撤销”和“自动演示”。renew、quit和autoButton都将当前窗口注册为自己的

ActionEvent事件监视器。

(2)方法

●ChangeAnimalWindow()是构造方法,负责完成窗口的初始化。

●init()方法负责完成Animal、Stone和Point对象的创建。

●setAmoutOfAnimal(int)方法负责设置动物的个数,即amountOfAnimal的值。

●removeAnimalAndStone()方法负责从窗体中移掉动物和石头,即移掉Animal对象和

Stone对象。

●needDoing()方法负责执行一些经常需要重复执行的代码。

●actionPerformed(ActionEvent)方法是ChangeAnimalWindow类实现的ActionListener

接口中的方法。ChangeAnimalWindow创建的窗口是oneGradeItem、twoGradeItem、threeGradeItem、custom、leftImage、rightImage、defaultImage等菜单项和renew、quit、autoButton按钮的ActionEvent事件监视器。当用户选中某个菜单项或单击按钮时,窗口将执行actionPerformed(ActionEvent)方法进行相应的操作。如果用户选中

oneGradeItem、twoGradeItem、threeGradeItem和custom四个菜单项的某一项时,

actionPerformed(ActionEvent)方法所执行的操作就是改变amountOfAnimal的值,并执行needDoing()方法,完成必要的初始化。如果用户选中leftImage和rightImage菜单项的某一个时,actionPerformed(ActionEvent)方法所执行的操作就是改变

leftImageFile和rightImageFile的引用。当用户单击renew按钮时,actionPerformed

(ActionEvent)方法所进行的操作是保持当前的amountOfAnimal的值,并执行

needDoing()方法,完成必要的初始化,当用户单击quit按钮时,actionPerformed

相关文档
最新文档