基于Java的动物换位游戏软件设计课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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对象的初始化。