俄罗斯方块游戏课程设计报告文档格式.docx
《俄罗斯方块游戏课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块游戏课程设计报告文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
4、现在程序详细设计……………………7
5、用户手册………………………………14
6、测试计划………………………………15
7、课程设计心得体会……………………16
8、参考书籍及资料………………………17
系统概述
1.1现状分析
在个人电脑日益普及的今天,一些有趣的桌面游戏差不多成为人们在使用计算机进行工作学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众认可,因此开发此游戏软件可满足人们的一些娱乐需求。
此俄罗斯方块游戏能够为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。
1、2项目要求
俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。
本软件实现的基本功能如下:
●游戏区:
玩家能够在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。
●游戏控制:
玩家能够通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制、
●玩家游戏信息存储及删除:
玩家的得分在前五名时,将会记录在排行榜上,同时可为玩家清空排行榜。
1.3ﻩ系统模块结构图
依据需求分析结果,俄罗斯方块游戏能够分为三个模块:
游戏区、游戏控制区、数据操作区。
系统模块结构如图:
原有程序概况
2。
1原有程序实现的功能
原来程序只能实现开始和退出游戏,还有记录游戏的得分!
类一:
控制面板类
(1)类定义:
classGameMain
(2)功能描述:
界面设计应遵循简介美观方便易用的基本原则。
类二:
画布类
类定义:
classGameCanvas
类三:
方块类
classRussiaBlock
七种类型方块的父类,定义了所有类型方块的共同特征和行为。
类四:
主游戏类
RussiaBlocksGame
游戏主类,负责游戏的全局控制、
类五:
虚拟单个方格类类
RussiaBlocksGame;
功能描述:
控制方格的颜色。
2、2原有游戏打开界面
2、3原有游戏运行界面
4改进目标
①增加暂停和接着按钮,如此能够方便游戏者,能够暂停游戏、
②增加游戏的等级,如此可改变游戏的难易程度,增加游戏的趣味性。
③增加填写游戏者姓名的的功能,如此能够记录游戏者的名字。
现在系统操作界面
3、1现在游戏打开界面
3。
2现在游戏运行界面
现在程序详细设计
class GameMain
(3)设计方法:
方法①Game方法
方法定义:
PublicGameMain()
这个方法就是要保证在放大和缩小程序实现窗口大小的时候,其中的格子也会随之改变,也就是我们经常说的最大化最小化,当窗口发生变化时,方块自动调整大小与之相匹配。
方法②:
actionPerformed方法
publicvoid actionPerformed()
这个就是将游戏界面重置,将游戏界面回到初始状态,这个方法主要是通过将窗口中的着色小方块全部消除颜色,然后再重新去给窗口着色,即着上背景色,给玩家看上去也就是被刷新了。
(4)设计描述:
1controlPanel面板中包含tipPanel,InfoPanel, buttonPanel子面板,分别为图形界面面板,信息面板,按钮面板
2图形显示面板设计为BorderLayout布局样式、其中添加tipPanel面板居中(以显示下一个俄罗斯方块样式)
3信息面板设计为4行1列式的GridLayout网格状布局,同时添加当前等级,显示当前等级文本域,当前分数,显示当前分数文本域
④按钮面板设计为5行1列式的GridLayout网格状布局,同时添加开始游戏,暂停/接着,结束三个按钮
面板设计效果图如下:
classGameCanvas
(2)设计方法:
方法①:
paintponent方法
方法定义publicvoidpaintponent(Graphicsg)
功能描述;
其中box就是表示预显示框,然后检查显示框中每个小格子是否需要着色,假如需要着色,则着上方块得颜色,不需要着色的则着上背景颜色,一共有16个小格子构成了一个预显示块,共需要检测16次,事实上当中和实现游戏中的程序有着共同点。
removeLine方法
public voidremoveLine(int row)
这个就是实现如何将行消除的,事实上就是在判断了该行该消除的时候将上面的方块都向下平移一格,如此在实现程序界面也就给玩家是消去一行的视觉效果。
classRussiaBlock
方法
:
run方法
publicvoid run()
实现方块的运行,下落。
方法②:
moveTo方法
publicsynchronizedboolean moveTo()
将当前画移动到newRow/newCol所指定的位置、
方法③:
isMoveable方法
privatebooleanisMoveable()
判定当前块是否能被边界、其他方块挡住以及不能移动的情况。
方法④:
turnNext方法
publicvoidturnNext()
实现方块的旋转。
方法⑤:
turnTo方法
private synchronizedbooleanturnTo()
将当前块变成newStyle所指定的块样式、
方法⑥:
isTurnable方法
private booleanisTurnable()
判定当前块是否能变成newStyle所指定的块样式。
方法⑦:
erase方法
private voiderase()
将当前块从画布的对应位置移除。
方法⑧:
display方法
privatevoiddisplay()
实现重画画布的时候显示当前块、
RussiaBlocksGame
游戏主类,负责游戏的全局控制。
方法①:
checkFullLine方法
publicvoid checkFullLine()
这个是表示的清除需要消除的行的算法,只需要对行中的小方块进行判断,判断是否都差不多着色,假如都着色了说明改行是要消除的,而且还需要进行加分措施,在进行多行消除的时候,能够给玩家更多的奖励,这也符合俄罗斯方块的游戏股则。
方法②:
play方法
方法:
privatevoidplay()
功能实现:
实现游戏开始,同时在游戏的开始时,方块随即从顶端的任何位置落下。
方法③:
getCurLevelScore方法
public intgetCurLevelScore()
实现获得每个等级的分数
setLevel方法
publicvoidsetLevel(intlevel)
进行等级的手动调节
方法⑤:
levelUpdate方法
publicvoidlevelUpdate()
这是更新等级的函数,一个是通过分数的判断,在程序中定义了一个本级得分,然后当本级得分达到一个分数的时候,就能够进入下一个等级,同时依照等级的提高,之前定义的下落速度也会提高,同时减去升级需要的分数,也就能够用作下一次升级的判断。
(4)ﻩ设计描述:
①窗体设计
窗体大小:
(300,400),默认居中显示,代码如下:
DimensionscrSize=Toolkit。
getDefaultToolkit()。
getScreenSize();
ﻩsetLocation((scrSize。
width—getSize()、width)/2,(scrSize、height—getSize()、height)/2);
添加windows窗口事件:
addWindowListener(newWindowAdapter()
{
ﻩpublicvoidwindowClosing(WindowEvent event)
ﻩ{
System。
exit(0);
ﻩ}
});
窗体名称为:
俄罗斯方块游戏。
②菜单设计
游戏菜单:
包括重新游戏,退出两个菜单项。
控制菜单:
包括暂停,接着,结束三个菜单项。
以菜单项为例
gameMenu =newJMenu("游戏");
ﻩ
newGameItem=newJMenuItem("重置"
);
ﻩexitItem=newJMenuItem(”退出");
ﻩ gameMenu。
add(newGameItem);
gameMenu、add(exitItem);
③添加背景音乐方法
ﻩpublicvoidMusic()
{
String music=”background、wav"
;
ﻩ finalAudioClipclip = Applet、newAudioClip(getClass()。
getResource(music));
clip、play();
}
通过调用Music()来实现背景音乐播放。
RussiaBlocksGame
(2)功能描述:
(3) 设计方法:
setColor方法
publicvoidsetColor()
对有标记的方块进行着色
用户手册
●控制区:
玩家在界面上能够看到开始游戏的按钮,点击该按钮,开始游戏,控制区和界面上都有暂停,接着的按钮,按下暂停则游戏暂停,同时界面上的按钮变成接着的字样,同理按下接着,游戏退出,用户结束游戏。
●游戏菜单区:
重置:
假如玩家在结束了游戏或者在游戏中向开始进行新的游戏,则能够点击该按钮,假如玩家不想接着玩得话,直截了当点击结束按钮结束游戏,并退出窗口、
●控制菜单:
暂停,接着,退出游戏的功能都和控制区一样的效果
●关于菜单:
该菜单游戏的操作的简介,方向键的左,下,右就是游戏中的操作方法,方向键上则是对图形的反转变化。
测试计划
右侧按钮测试
1。
点击“开始/重置”按钮
效果:
游戏开始与重置
结果:
正常
2、点击“暂停/接着”按钮
游戏依照操作能暂停与接着相互切换
3、点击“结束"
按钮
游戏重置,屏幕重新刷新
结果正常
键盘事件的功能测试
1、方块移动测试
游戏过程中,点击“左、右、下"
方向键
输出:
方块正常移动,可不能移出边界
2、 方块反转测试
游戏过程中,点击向上方向键
方块无边界和障碍物阻挡的情况下可反转
方块堆砌与消行测试
1、 当方块下落到最底面或与障碍物接触时
方块成功堆砌在底部
2、当出现满行现象时
所有满行被消除,方块依次下移
课程设计心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
Java语言是一门强大的语言,比我们所学过的C语言有特别强的功能,能够有美化的图形界面设计,能够连接数据库,解决用文件存储的繁琐过程,使得软件所产生的数据更容易管理和维护。
在设计初期时,组员通过交流,讨论,定下了课题—-俄罗斯方块游戏。
分工之后,将整个课题分为三个部分。
在编程时期,我们发现一学期所学的知识难易填补课题所需的知识漏洞,通过参考课外书籍,网络资源,掌握了课本之外的一些技巧与知识、我们在课程设计的同时感受到我们还欠缺特别多。
通过此次课程设计,我们对专业知识又有了更进一步的了解,对培养我们专业兴趣起到良好的推动作用、
课程设计在衔接之时也遇到一些问题,有一些程序BUG,经过讨论修改,完善了程序。
因为是分工作业,因此相互之间的交流是十分重要的,每次进度的保存要记录,如此方便组员之间共享。
因为专业水平还有不足,因此程序不算完美,有一些功能没有得到实现,这也激励着我们在以后的专业课学习中,要更加的努力,填补知识的空缺。
经过两周的课程设计,俄罗斯方块游戏也能够运行,有了此次宝贵的经验,相信以后的对以后的课程设计有更大的帮助、
参考书籍及资料
1、《JAVA语言程序设计》张思民编著,清华大学出版社
2、《Java开发实战1200例》李钟尉 陈丹丹编著,清华出版社
3、《Java编程》(美)法瑞尔编著,科学出版社
4、《JAVA程序设计教程》郭广军 刘安丰编著,武汉大学出版社