基于Java的动物换位游戏软件设计
沈阳理工大学课程设计报告- 1 - 沈阳理工大学目 录1. 软件主要功能 22. 类总体设计 .22.1 类组合关系图 22.2 系统流程图 32.3 主类 42.4 其他类 .42.4.1 Animal.java.42.4.2 Point.java42.4.3 Stone.java42.4.4 HandleMouse.java42.4.5 AutoMoveAnimal.java.42.4.6 Customdlg.java42.4.7 People.java.42.4.8 Record.java.42.4.9 ShowRecordDialog.java.43. 类详细设计 .43.1 主类 43.2 其他类 .64. 关键成员函数代码 75. 软件运行结果 .15结 论 .16参考文献 .16沈阳理工大学课程设计报告- 2 - 沈阳理工大学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所示。ChangeAnimalWindowAnimalPoint Stone HandleMouseAutoMoveAnimalCustomdlgPeople Record JbuttonFileJmenuItemShowRecordDialog沈阳理工大学课程设计报告- 3 - 沈阳理工大学图 2.1 类之间的组合关系2.2 系统流程图开始进入游戏界面是否选择级别进入所选级别等级是否选择动物图像进入选择动物图像界面游戏开始是否相邻两个图片相同游戏终止自动演示游戏结果是否要重新开始是否要自动演示是否达到英雄榜记录撤销游戏输入游戏者信息是否游戏成功继续游戏游戏结束是否是否是 否否否否是是是是否沈阳理工大学课程设计报告- 4 - 沈阳理工大学图 2.2 系统流程图2.3 主类ChangeAnimalWindow类负责创建动物换位的主窗口,该类含有 main方法,程序从该类开始执行。2.4 其他类2.4.1 Animal.javaAnimal类是 JPanel的一个子类,创建的对象是 ChangeAnimalWindow类的重要成员之一,用来表示“动物” 。2.4.2 Point.javaPoint类负责创建确定位置的对象,使用 Point对象,可以确定 Animal以及 Stone对象在窗体中的位置。2.4.3 Stone.javaStone类是 JButton的一个子类,创建的对象表示“石头” 。2.4.4 HandleMouse.javaHandleMouse类所创建的对象负责处理鼠标事件。2.4.5 AutoMoveAnimal.javaAutoMoveAnimal类所创建的对象使用算法完成动物的自动换位。2.4.6 Customdlg.javaCustomdlg类所创建的对象用来设置“自定义”级别的动物数量。2.4.7 People.javaPeople对象封装用户的名字和成绩,以便 ShowRecordDialog对象可以排序。2.4.8 Record.javaRecord类是 javax.swing包中 JDialog对话框的子类,当用户成功完成相应级别的游戏时,Record 创建的对象负责保存用户的名字和成绩到相应的级别文件中。2.4.9 ShowRecordDialog.javaShowRecordDialog类是 javax.swing包中 JDialog对话框的子类,当用户单击查看相应的级别排行榜时,ShowRecordDialog 创建的对象负责显示用户的成绩。3. 类详细设计3.1 主类图 3.1 ChangeAnimalWindow类的 UML图(1)成员变量沈阳理工大学课程设计报告- 5 - 沈阳理工大学 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 被