基于Java的动物换位游戏软件设计课程设计报告

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

课程设计任务书

沈阳理工大学课程设计报告

目录

1 课设软件主要功能 (1)

2 类总体设计 (2)

2.1 类组合关系图 (2)

2.2 主类 (2)

2.3 其他类 (2)

3 类详细设计 (3)

3.1 CHANGEANIMALWINDOW类 (3)

3.2 ANIMAL类 (5)

3.3 POINT类 (7)

3.4 STONE类 (8)

3.5 HANDLEMOUSE类 (9)

3.6 AUTOMOVEANIMAL类 (10)

4 关键类成员函数流程图及代码 (13)

5 软件运行结果 (35)

结论 (37)

参考文献 (37)

动物换位系统的设计

1 课设软件主要功能

程序分为不同的级别,左右各有动物,中间石头没有动物,将左右动物交换,不可后退。用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跃到石头上,其他情形时,该动物不能跳跃。不能持续玩的可以点自动演示,将自动完成游戏,可以帮助游戏者更好的了解系统的主体功能。

设计GUI界面的动物换位游戏,游戏的结果是让左右两组动物交换位置。具体内容如下:1) 程序分为4个级别,用户可以通过界面上提供的菜单选择“初级”、“中级”、“高级”、

“自定义”这4个级别。对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物;对于“自定义”级别,用户可以输入自己想设置的一个动物数量(输入的数必须是偶数),在水平排列的N块石头上的左右各有(N-1)2个类型相同的动物,中间的石头上没有动物。

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

3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。

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

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

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

2 类总体设计

2.1类组合关系图

2.2主类

ChangeAnimalWindow.java(主类)

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

2.3其他类

2.3.1 Animal

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

2.3.2 Point

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

2.3.3 Stone

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

2.3.4 HandleMouse

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

2.3.5 AutoMoveAnimal

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

3类详细设计

3.1 ChangeAnimalWindow类

1.效果图

ChangeAnimalWindow创建的窗口效果如图所示:

图3-1-1动物换位的主窗口

2.UML图

ChangeAnimalWindow类是javax.swing包中的JFrame的一个子类,并实现了

ActionListener接口,标明该类的主要成员变量和方法的UML图如图所示。

以下是UML图中有关数据和方法的详细说明。

图3-1-2 ChangeAnimalWindow类的UML图

3.以下是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。

(String)方法是程序运行的入口方法。

3.2 Animal类

1.效果图

Animal创建的对象效果图如图所示:

图3-2-1动物的效果图

2.UML图

Animal类是javax.swing包中JPanel容器的一个子类,创建的对象是数组animal的单元中的对象。Animal型数组animal是ChangeAnimalWindow窗口的重要成员之一。标明Animal类的主要成员变量和方法以及和ChangeAnimalWindow类之间组合关系的UML图,如图所示。

图3-2-2 Animal类的UML图

以下是UML图中有关数据和方法的详细说明。

1)成员变量

●point是Point型对象,用来确定Animal对象在窗口中的位置。

●isLeft是boolean型数据,用来确定Animal对象是否为“左”。

●tool是Toolkit对象,用来获得Image对象。

●leftImage和rightImage是File类型的对象,用来确定Animal对象上绘制的图像文

件。

2)方法

●Animal()是构造方法,负责完成Animal对象的初始化。

相关文档
最新文档