文档介绍:基础科学学院
Java面向对象课程设计
——龟兔赛跑游戏的设计与实现
班级信息与计算科学
学号
姓名
2011年 7月1日
目录
第一章设计前言………………………………………………………….3
第二章程序功能简介……………………………………………………..3
第三章设计主体内容……………………………………………………..4
3、1 程序分析………………………………………………………..4
3、2 流程图…………………………………………………………..6
3、3 模块说明………………………………………………………..7
3、4 源程序…………………………………………………………..10
3、5 操作及结果…………………………………………………......20
第四章设计体会…………………………………………………………..21
第五章参考文献…………………………………………………………..21
Java程序设计
本次课设我们组选择的是龟兔赛跑游戏的制作。这个游戏实际上主要是对我们JAVA学****中的线程部分的考察,尤其是多线程的定义,运行等。同时还要保证游戏有一个真实的操作界面和人性化操作设计,所以我们组在分配任务中重点强调了对线程部分内容的复****和实践。在本次课设中我作为小组组长,主要负责线程类的构建,操作界面的设计以及对全组工作的整体协调。
在设计龟兔赛跑这个游戏中我们也遇到了技术上的一些困难,但通过组员们一致的努力,最终问题得以解决。正如龟兔赛跑这个故事一样,虽然我们在技术上不是很优秀,但我们的组员有乌龟一样坚持不懈的精神,最终胜利到达终点。
第二章、程序功能简介
龟兔赛跑游戏的功能如下:
1、用图形用户界面实现游戏界面;
通过使用java中Jlabel,Jbutton,JtextArea,JcomboBox等swing组件来实现图形用户界面,同时通过设置布局,背景,字体等来丰富界面,最大程度的模拟龟兔赛跑的场景。
2、能设置比赛时间,龟兔的数量等等。
通过组合框组件的使用以及事件的订阅来实现用户对不同游戏模式的选择,在本程序中只是简单的设计了两种游戏模式供用户选择,也一定程度上实现了对比赛中龟兔的数量,比赛时间等参数的设置。
3、在任意时间段内龟兔的速度是随机的。
为了模拟龟兔赛跑结果的不确定性,在游戏开始后乌龟和兔子的速度都是通过随机函数产生的,当然,我们会在保证兔子比乌龟速度要快,兔子在赛跑途中看到乌龟落后下会偷懒睡觉的前提下给予乌龟,兔子以随机的速度,从而使得游戏的结果不确定,给用户更多的游戏的真实感。
4、开始比赛之后以动画显示赛跑过程。
用户进入游戏界面后,先选择游戏模式,然后单击开始按钮,乌龟和兔子将会以随机的速度开始朝终点线爬行,通过java中重复刷新技术达到动画效果,给用户更逼真的感官。
第三章、主体内容
一、设计分析
第一步:设计良好游戏界面
功能:实现基本的开始、退出游戏功能、选择游戏模式等。
基本步骤:
backgroundPanel
添加
在其上添加
乌龟标签
JcomboBox
JPanel
JtextArea
Jbutton
胜利信息的呈现
兔子标签
选择按钮提示
模式信息呈现
用于选择不同的比赛模式
开始按钮
结束按钮
添加
在实现过程中会遇到的问题及解决方案:
ponent方法
布局必须合理设置(GridLayout不能改变组件的具体位置但可以缩放时相对位置不变。FlowLayout默认是占满第一行转向第二行,并且放大时相对位置改变。Null布局可以自由布置组件位置和大小,但不易实现窗口放大时相对大小随之变化。)若设置不合理,就可能出现多种错误。列如:无法插入背景图片,组建不能显现,组件位置与设计不符等等。
添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变
第二步:线程类的设计
功能:实现多只乌龟,兔子的多线程运行
SwingResourceManager类,对图片加载方法的重写集合
具体步骤:
Time类
RabbitThread类
class Run类(是主类,继承Jframe主要用于线程事件的逻辑控制)
hread类
TortoiseThread类
ItemSelect类
第二步会遇到的问题及解决方案:
1、建立兔子线程,继承接口Runnable并正确的实现run()方法。同时要特别注意兔子在比赛中还要模拟睡觉的动作。
2、建立乌龟线程,继承接口Runnable并实现其run()方法,要与兔子多线程运行;
3、为了实现可选择多只龟兔进行赛跑,要实现多个兔子,乌龟线程,并能并发运行。
4、游戏