俄罗斯方块游戏课程设计报告.docx

上传人:b****8 文档编号:30470642 上传时间:2023-08-15 格式:DOCX 页数:32 大小:311.50KB
下载 相关 举报
俄罗斯方块游戏课程设计报告.docx_第1页
第1页 / 共32页
俄罗斯方块游戏课程设计报告.docx_第2页
第2页 / 共32页
俄罗斯方块游戏课程设计报告.docx_第3页
第3页 / 共32页
俄罗斯方块游戏课程设计报告.docx_第4页
第4页 / 共32页
俄罗斯方块游戏课程设计报告.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

俄罗斯方块游戏课程设计报告.docx

《俄罗斯方块游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块游戏课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。

俄罗斯方块游戏课程设计报告.docx

俄罗斯方块游戏课程设计报告

 

计算机工程学院

 

课程设计说明书

 

课程名称:

______________________________________

 

设计项目:

______________________________________

 

学生姓名:

______________________________________

 

学号:

______________________________________

 

专业:

______________________________________

 

班级:

______________________________________

 

指导教师:

______________________________________

 

______年______月

 

...

 

一、任务与具体要求

 

二、设计说明书包括的内容

 

三、应完成的图纸

 

四、评语及成绩

 

指导教师(签字)_____________

 

________年____月____日

 

...

 

1.2

23

35

47

514

615

716

817

 

系统概述

 

1.1现状分析

 

在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们

 

...

 

在使用计算机进行工作学习之余休闲娱乐的首选,而俄罗斯方块游戏

 

是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得

 

到了大众认可,因此开发此游戏软件可满足人们的一些娱乐需求。

 

此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行

 

的,界面美观的,易于控制的俄罗斯方块游戏。

 

1.2项目要求

 

俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。

 

本软件实现的基本功能如下:

 

游戏区:

玩家可以在游戏区中堆积方块,并能够在游戏过程中随

 

时了解得分情况和下一个将要出现方块的提示。

 

游戏控制:

玩家可以通过游戏控制功能来控制游戏开始,暂停,

 

结束游戏,游戏难度的设置以及音效控制。

 

玩家游戏信息存储及删除:

玩家的得分在前五名时,将会记录在

 

排行榜上,同时可为玩家清空排行榜。

 

1.3系统模块结构图

 

依据需求分析结果,俄罗斯方块游戏可以分为三个模块:

游戏区、

 

游戏控制区、数据操作区。

系统模块结构如图:

 

...

 

游戏区

 

俄罗斯方块游游戏控制

 

数据操作

 

原有程序概况

 

2.1原有程序实现的功能

 

原来程序只能实现开始和退出游戏,还有记录游戏的得分!

 

类一:

控制面板类

 

(1)类定义:

classGameMain

 

(2)功能描述:

界面设计应遵循简介美观方便易用的基本原则。

 

类二:

画布类

 

类定义:

classGameCanvas

 

类三:

方块类

 

(1)类定义:

classRussiaBlock

 

(2)功能描述:

七种类型方块的父类,定义了所有类型方块的共同特征和行为。

 

...

 

随机产生一个数

 

1

2

3

4

5

6

7

一字形

Z字形

反Z形

L字形

反L形

倒T形

田字型

 

类四:

主游戏类

 

(1)类定义:

RussiaBlocksGame

 

(2)功能描述:

游戏主类,负责游戏的全局控制。

类五:

虚拟单个方格类类

 

(1)类定义:

RussiaBlocksGame;功能描述:

控制方格的颜色。

 

2.2原有游戏打开界面

 

...

 

2.3原有游戏运行界面

 

2.4改进目标

 

增加暂停和继续按钮,这样可以方便游戏者,可以暂停游戏。

 

增加游戏的等级,这样可改变游戏的难易程度,增加游戏的趣味

 

性。

 

增加填写游戏者姓名的的功能,这样可以记录游戏者的名字。

 

现在系统操作界面

 

3.1现在游戏打开界面

 

...

 

3.2现在游戏运行界面

 

...

 

现在程序详细设计

 

类一:

控制面板类

 

(1)类定义:

classGameMain

 

(2)功能描述:

界面设计应遵循简介美观方便易用的基本原则。

 

(3)设计方法:

 

方法①Game方法

 

方法定义:

PublicGameMain()

 

功能描述:

这个方法就是要保证在放大和缩小程序实现窗口大

 

小的时候,其中的格子也会随之改变,也就是我们经常说的最大化

 

...

 

最小化,当窗口发生变化时,方块自动调整大小与之相匹配。

 

方法②:

actionPerformed方法

 

方法定义:

publicvoidactionPerformed()

 

功能描述:

这个就是将游戏界面重置,将游戏界面回到初始状

 

态,这个方法主要是通过将窗口中的着色小方块全部消除颜色,然

 

后再重新去给窗口着色,即着上背景色,给玩家看上去也就是被刷

 

新了。

 

(4)设计描述:

 

①controlPanel面板中包含tipPanel,InfoPanel,buttonPanel

 

子面板,分别为图形界面面板,信息面板,按钮面板

 

②图形显示面板设计为BorderLayout布局样式.其中添加

 

tipPanel面板居中(以显示下一个俄罗斯方块样式)

 

③信息面板设计为4行1列式的GridLayout网格状布局,并且添加当前等级,显示当前等级文本域,当前分数,显示当前分数文本域

 

④按钮面板设计为5行1列式的GridLayout网格状布局,并且

 

添加开始游戏,暂停/继续,结束三个按钮面板设计效果图如下:

 

...

 

类二:

画布类

 

(1)类定义:

classGameCanvas

 

(2)设计方法:

 

方法①:

paintComponent方法

 

方法定义publicvoidpaintComponent(Graphicsg)

 

功能描述;其中box就是表示预显示框,然后检查显示框中每个小格子是否需要着色,如果需要着色,则着上方块得颜色,不需要着色的则着上背景颜色,一共有16个小格子构成了一个预显示块,共需要检测16次,其实当中和实现游戏中的程序有着共同点。

方法②:

removeLine方法

 

...

 

方法定义:

publicvoidremoveLine(introw)

 

功能描述:

这个就是实现如何将行消除的,其实就是在判断了

 

该行该消除的时候将上面的方块都向下平移一格,这样在实现程序

 

界面也就给玩家是消去一行的视觉效果。

 

类三:

方块类

 

(1)类定义:

classRussiaBlock

 

(2)功能描述:

七种类型方块的父类,定义了所有类型方块的共同特征和行为。

 

随机产生一个数

 

1

2

3

4

5

6

7

一字形

Z字形

反Z形

L字形

反L形

倒T形

田字型

 

(3)设计方法:

 

方法①:

run方法

 

方法定义:

publicvoidrun()

 

功能描述:

实现方块的运行,下落。

 

方法②:

moveTo方法

 

方法定义:

publicsynchronizedbooleanmoveTo()

 

功能描述:

将当前画移动到newRow/newCol所指定的位置。

 

方法③:

isMoveable方法

 

...

 

方法定义:

privatebooleanisMoveable()

 

功能描述:

判定当前块是否能被边界、其他方块挡住以及不能移动的情况。

 

方法④:

turnNext方法

 

方法定义:

publicvoidturnNext()

 

功能描述:

实现方块的旋转。

 

方法⑤:

turnTo方法

 

方法定义:

privatesynchronizedbooleanturnTo()

 

功能描述:

将当前块变成newStyle所指定的块样式。

 

方法⑥:

isTurnable方法

 

方法定义:

privatebooleanisTurnable()

 

功能描述:

判定当前块是否能变成newStyle所指定的块样式。

 

方法⑦:

erase方法

 

方法定义:

privatevoiderase()

 

功能描述:

将当前块从画布的对应位置移除。

 

方法⑧:

display方法

 

方法定义:

privatevoiddisplay()

 

功能描述:

实现重画画布的时候显示当前块。

 

类四:

主游戏类

 

(1)类定义:

RussiaBlocksGame

 

(2)功能描述:

游戏主类,负责游戏的全局控制。

 

...

 

(3)设计方法:

 

方法①:

checkFullLine方法

 

方法定义:

publicvoidcheckFullLine()

 

功能描述:

这个是表示的清除需要消除的行的算法,只需要对行中的小方块进行判断,判断是否都已经着色,如果都着色了说明改行是要消除的,而且还需要进行加分措施,在进行多行消除的时候,可以给玩家更多的奖励,这也符合俄罗斯方块的游戏股则。

方法②:

play方法

 

方法:

privatevoidplay()

 

功能实现:

实现游戏开始,同时在游戏的开始时,方块随即从顶端的任何位置落下。

 

方法③:

getCurLevelScore方法

 

方法定义:

publicintgetCurLevelScore()

 

功能描述:

实现获得每个等级的分数

 

方法④:

setLevel方法

 

方法定义:

publicvoidsetLevel(intlevel)

 

功能描述:

进行等级的手动调节

 

方法⑤:

levelUpdate方法

 

方法定义:

publicvoidlevelUpdate()

 

功能描述:

这是更新等级的函数,一个是通过分数的判断,在程序中定义了一个本级得分,然后当本级得分达到一个分数的时

 

候,就可以进入下一个等级,同时根据等级的提高,之前定义的下

 

...

 

落速度也会提高,同时减去升级需要的分数,也就可以用作下一次

 

升级的判断。

 

(4)设计描述:

 

①窗体设计

 

窗体大小:

(300,400),默认居中显示,代码如下:

DimensionscrSize=Toolkit.getDefaultToolkit().getScreenSize();setLocation((scrSize.width-getSize().width)/2,(scrSize.height-get

Size().height)/2);

添加windows窗口事件:

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEventevent)

{

System.exit(0);

}

});

 

窗体名称为:

俄罗斯方块游戏。

 

②菜单设计

 

游戏菜单:

包括重新游戏,退出两个菜单项。

 

控制菜单:

包括暂停,继续,结束三个菜单项。

 

以菜单项为例

 

gameMenu=newJMenu("游戏");

 

newGameItem=newJMenuItem("重置");

 

exitItem=newJMenuItem("退出");

 

gameMenu.add(newGameItem);

 

...

 

gameMenu.add(exitItem);

 

③添加背景音乐方法

publicvoidMusic()

{

Stringmusic="background.wav";

finalAudioClipclip=

Applet.newAudioClip(getClass().getResource(music));clip.play();

}

 

通过调用Music()来实现背景音乐播放。

 

类五:

虚拟单个方格类类

 

(1)类定义:

RussiaBlocksGame

 

(2)功能描述:

控制方格的颜色。

 

(3)设计方法:

 

方法:

setColor方法

 

方法定义:

publicvoidsetColor()

 

功能描述:

对有标记的方块进行着色

 

用户手册

 

控制区:

玩家在界面上可以看到开始游戏的按钮,点击该按钮,

 

开始游戏,控制区和界面上都有暂停,继续的按钮,按下暂停则

 

游戏暂停,并且界面上的按钮变成继续的字样,同理按下继续,

 

游戏退出,用户结束游戏。

 

...

 

游戏菜单区:

重置:

如果玩家在结束了游戏或者在游戏中向开始

 

进行新的游戏,则可以点击该按钮,如果玩家不想继续玩得话,

 

直接点击结束按钮结束游戏,并退出窗口。

 

控制菜单:

暂停,继续,退出游戏的功能都和控制区一样的效果

 

关于菜单:

该菜单游戏的操作的简介,方向键的左,下,右就是

 

游戏中的操作方法,方向键上则是对图形的反转变化。

 

测试计划

 

右侧按钮测试

 

1.点击“开始/重置”按钮效果:

游戏开始与重置

 

结果:

正常

 

2.点击“暂停/继续”按钮

 

效果:

游戏根据操作能暂停与继续相互切换结果:

正常

 

3.点击“结束”按钮

 

效果:

游戏重置,屏幕重新刷新

 

结果正常

 

键盘事件的功能测试

 

1.方块移动测试

 

游戏过程中,点击“左、右、下”方向键输出:

方块正常移动,不会移出边界

 

...

 

结果:

正常

 

2.方块反转测试

 

游戏过程中,点击向上方向键

 

输出:

方块无边界和障碍物阻挡的情况下可反转

 

结果:

正常

 

方块堆砌与消行测试

 

1.当方块下落到最底面或与障碍物接触时输出:

方块成功堆砌在底部

 

结果:

正常

 

2.当出现满行现象时

 

输出:

所有满行被消除,方块依次下移结果:

正常

 

课程设计心得体会

 

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际

 

问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练

 

和考察过程.

 

Java语言是一门强大的语言,比我们所学过的C语言有很强的

 

功能,可以有美化的图形界面设计,可以连接数据库,解决用文件存

 

储的繁琐过程,使得软件所产生的数据更容易管理和维护。

 

在设计初期时,组员通过交流,讨论,定下了课题——俄罗斯方

 

块游戏。

分工之后,将整个课题分为三个部分。

在编程阶段,我们发

 

现一学期所学的知识难易填补课题所需的知识漏洞,通过参考课外书

 

...

 

籍,网络资源,掌握了课本之外的一些技巧与知识。

我们在课程设计的同时感觉到我们还欠缺很多。

通过此次课程设计,我们对专业知识又有了更进一步的了解,对培养我们专业兴趣起到良好的推动作用。

 

课程设计在衔接之时也遇到一些问题,有一些程序BUG,经过讨

 

论修改,完善了程序。

因为是分工作业,所以相互之间的交流是十分

 

重要的,每次进度的保存要记录,这样方便组员之间共享。

因为专业

 

水平还有不足,所以程序不算完美,有一些功能没有得到实现,这也

 

激励着我们在以后的专业课学习中,要更加的努力,填补知识的空缺。

 

经过两周的课程设计,俄罗斯方块游戏也可以运行,有了此次宝贵的

 

经验,相信以后的对以后的课程设计有更大的帮助。

 

参考书籍及资料

 

1、《JAVA语言程序设计》张思民编著,清华大学出版社

 

2、《Java开发实战1200例》李钟尉陈丹丹编著,清华出版社

 

3、《Java编程》(美)法瑞尔编著,科学出版社

 

4、《JAVA程序设计教程》郭广军刘安丰编著,武汉大学出版社

 

...

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1