Android俄罗斯方块课程设计报告_第1页
Android俄罗斯方块课程设计报告_第2页
Android俄罗斯方块课程设计报告_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南城建学院课程设计报告书专 业:计算机科学与技术课程设计名称:Java高级应用题目:俄罗斯方块班级:学号:设计者:同组人 员 :指导老 师:完 成 时 间: 2016年 06 月 08目录一、设计目的 1二、需求分析 22.1 游戏功能的需求分析 . 22.2 方块及旋转变换需求分析 . 32.3 游戏运行需求分析 . 42.4 消行和分数统计需求分析 . 5三、模块分析及设计 63.1 总体设计思想 63.2 功能模块 6四、制作过程及要点 94.1 游戏一个单元块的设计与实现 94.2 俄罗斯方块的控制设计 . 94.3 俄罗斯方块的设计与实现 104.4 要点分析 10五、设计总结 1

2、2六、参考资料 13、 设计目的在个人电脑日益普及的今天, 一些有趣的桌面游戏已经成为人们 在使用计算机进行工作或学习之余休闲娱乐的首选, 而俄罗斯方块游 戏是人们最熟悉的小游戏之一, 它以其趣味性强, 易上手等诸多特点 得到了大众的认可, 因此开发此游戏软件可满足人们的一些娱乐的需 求。 此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运 行的,界面美观的,易于控制的俄罗斯方块游戏。俄罗斯方块是家喻户晓的益智小游戏, 它由俄罗斯人阿列克谢帕 基特诺夫( Alexey Pazhitnov )在 1984年 6月利用空暇时间编写的 游戏程序,故此得名。俄罗斯方块的基本规则是移动、旋转和摆放游

3、 戏随机产生的各种方块, 使之排列成完整的一行或多行并且消除得分。 它看似简单却变化无穷, 俄罗斯方块上手极其简单, 且游戏过程变化 无穷,作为游戏本身很有魅力, 但是要熟练掌握其中的操作和摆放技 巧,难度却不低。此软件给用户提供了一个展现自己高超技艺的场所, 在这里,它不仅放松自己, 还能感受到游戏中的乐趣。游戏区域会从 顶部不断随机落下 7种方块类型的一种, 游戏区域右上角有一个区域 可以显示下一个方块的形状,玩家可以控制俄罗斯方块移动、旋转。 通过玩家的操作,下坠物在游戏区域以“摆积木”的形式出现。下坠 物在一行或多行堆满后就可以自动消除,消行后会得到相应的分数, 如果当前下坠物堆积至窗

4、口顶端,则游戏结束。二、需求分析2.1 游戏功能的需求分析先分析一下整个游戏的具体实现,首先,游戏有开始、帮助、切 换界面、结束游戏等操作接口,而在游戏过程中,随着玩家的按键, 会出现下坠物的形态变化、 摆放下坠物件、 销毁填满的行以及分数的 增加和等级速度、产生下一个方块、退出等功能。先分析游戏的特点, 游戏需要产生不同种类的俄罗斯方块, 要对俄罗斯方块进行左右移动, 旋转,加速下落等功能,然后对这些功能一一进行细化,写出对应的 实现的代码,并美化游戏界面,从而完成整个游戏的设计。2.1.1 游戏方块控制功能当玩家按下相应的操作键位时, 通过条件判断, 判断该操作是否 可行,如果可行就执行相

5、应的操作。主要的操作有游戏方块的左移, 右移,旋转变形以及方块加速。例如当按下左移按钮时,方块会进行 判断是否可左移,返回值为真时可以左移,否则不能。2.1.2 方块的生成及显示功能游戏中会有两个地方产生俄罗斯方块, 一个是游戏区域上方会有 俄罗斯方块落下, 还有就是在屏幕右上角, 也会产生下一个俄罗斯方 块,该俄罗斯方块为游戏区域下一个要产生的方块。 同时当游戏俄罗 斯方块左右移动,下落,旋转变形时,要与先前的游戏方块重合并完 成消除行功能, 还要求出被操作后的方块坐标, 用新坐标重绘下一个 游戏方块。2.1.3 方块的摆放消行功能当方块落到底部的时候, 通过条件判断, 把方块摆放在屏幕底部

6、 并持续显示,当某行或者某几行被填满的时候,要把这几行消除,并 且被消除的行数上方的方块整体下移。2.1.4 游戏分数统计功能记录游戏积分, 每当有行被消除时, 游戏积分会根据一次消除的 行数而增加相应的分数, 分数要设置一个最高值, 当到达最高分时等 级增加,难度增大。2.1.5 游戏速度更新功能 当游戏积分达到某一条件时, 系统将自动为玩家提高难度。 难度 增加的时候,方块的下降速度会加快,增加游戏可玩性和趣味性。2.1.6 游戏等级更新功能 当游戏积分达到某一条件时, 系统将自动为玩家提高难度。 难度增加的时候,方块的下降速度会加快,相应的等级也会增加,增加游 戏可玩性和趣味性。2.1.

7、7 游戏结束控制功能 通过判断,如果摆放的方块超过屏幕顶端的时候,则游戏结束, 可以返回菜单重新开始游戏。也可通过点击退出按钮,结束游戏,退 出游戏界面。2.2 方块及旋转变换需求分析本游戏共有 7 种类型的方块,而每种类型方块还可以通过旋转变 换成 4 种不同形态的方块进行摆放。 方块生成后可以将它们摆放在一 个游戏显示运行的区域内, 该区域可以看作是有许多个等面积小方格 构成的区域,而这些区域的状态只有两种, 被方块占据或空闲。 因此, 对于整个游戏区域的空间是占据或空闲, 可以用一位数来标识, 对于 7 种方块和它们旋转后的形态我们可以用不同的标识进行标记。对于 旋转,游戏中所有方块都是

8、按照顺时针旋转的规则进行的, 而且在旋 转过程中它们不会因为旋转而下降, 总会保持在同一高度, 但是在同 一高度最多旋转三次, 就会下降一格, 任何下坠物经过一个旋转周期 还会变回原型。2.3 游戏运行需求分析游戏开始后会随机产生一个方块, 显示在游戏区域, 同时右上角 也会随机产生一个新的方块, 该方块为游戏区域下一个将要产生的方 块,游戏区域不再随机生成方块。当游戏区域的方块下落到底后,新 的方块再次进入游戏区域,如此循环,直到游戏结束,这就是游戏的 正常工作。 当用户进行一定的操作交互的时候, 运行程序可以根据用 户的操作指示对方块进行控制, 而这些操作都是响应相关的按键而执 行的。按游

9、戏中定义的旋转键,此事件实现下坠方块旋转操作,方块 并非任何情况都能旋转, 如果旋转后与已摆放好的方块有冲突或超出 边界时,均不能发生旋转。 因此首先要判断是否有足够的空间进行旋 转,然后决定是否旋转。 按游戏左键,此事件实现下坠方块左移操作, 首先要判断此方块是否能够发生左移, 当越界或被其他摆放好的方块 阻挡时,则不能左移。按游戏右键,此事件实现下坠方块右移操作。 首先要判断此方块是否能够发生右移, 当越界或被其他摆放好的方块 阻挡时,则不能右移。2.4 消行和分数统计需求分析当一个方块下落到游戏区域底部进行摆放后就要进行一次消行 检测,检测是否有行被填满, 检测时从刚摆放的方块最上面那一

10、行开 始往下检测, 由于方块的形状限制可知每次最多只能消除四行, 所以 只需检测四行即可。 检测到一行被填满时该行上面的方块整体下移一 行,包括空洞,然后继续检测下一行,直到四行都被检测完。消行以 后要统计游戏的积分, 根据每次消除的行数 t 的不同而累加不同的积 分,游戏积分通过公式 score+=t*t*100 来计算,消除一行得 100 分, 消除两行得 400分,消除三行得 900分,消除四行得 1600 分。设置 最高分数,当分数达到最高分数后,游戏等级增加,游戏速度数值会 增加以及加快速度,游戏速度有一个最大值,当到达这个值时,游戏 速度将不再加快。 分数统计和消除行是连贯动作,

11、在消除行后要对分 数进行增加,同时页面更新 , 页面上的分数,等级,速度都会更新, 游戏区域的方块也更新,有一行被消除,游戏继续。当方块落到底部 的时候,通过条件判断,把方块摆放在屏幕底部并持续显示,当某行 或者某几行被填满的时候, 要把这几行消除, 并且被消除的行数上方 的方块整体下移。三、模块分析及设计3.1 总体设计思想俄罗斯方块游戏设计主要从 9 个方面进行构思。(1) 游戏主界面的设计。(2) 方块的设计。(3) 方块的旋转。(4) 方块的运动情况(包括向左、向右)(5) 方块的自动消行功能。(6) 游戏速度的调节。(7) 游戏积分的计算。(8) 游戏开始菜单的设计。(9) 游戏结束

12、界面的设计。3.2 功能模块3.2.1 开始和退出游戏模块 首先开始和退出游戏按钮出现在进入游戏界面和游戏界面, 需要 在 xml 下加入 Button 按钮,当点击按钮时跳转到目标界面或者开始 游戏。例如点击进入游戏的开始按钮,会进入游戏界面,游戏界面也 可点击开始按钮才能开始游戏, 游戏开始后可以点击退出按钮, 终止 当前游戏,返回到进入游戏界面,或者当方块满时,游戏自动结束, 退出游戏界面。图3.1图3.2322游戏控制模块俄罗斯方块包括对游戏中的方块进行的操作,如左(右)移动,旋转,下落加速等功能图3.3图3.4323游戏帮助功能在游戏的开始界面上,当玩家对该游戏不熟悉时可点击帮助按钮

13、。俄罗斯方块伽14132班课程设.图3.5这是一个俄罗斯方 块的简单游戏,可 以通过左右以及加 速和旋转按钮对俄 罗斯方块进行操 作。图3.6四、制作过程及要点4.1 游戏一个单元块的设计与实现每一个俄罗斯方块包括四个四个单元块, 设置一个单元块的大小, 对单元块的位置用坐标表示, 根据绘制好的网格定义单元格坐标, 判 断单元格的一些功能的实现,例如旋转,左右移动,是否与其他单元 块接触。通过检测单元块是否超界来判断,并把结果返回。4.2 俄罗斯方块的控制设计方块是游戏最基本的元素, 俄罗斯方块所有的操作都是建立在对 方块的操作上。对方块的控制,实际就是对每一个小方块的控制,一 个俄罗斯方块单

14、元是由 4 个小方块构成,通过计算每一个小方块的横 纵坐标来表现出一个下落或者一个已经摆放好的俄罗斯方块单元。 由 此来布置游戏区域方块的显示, 方块的控制主要在 TetrisBlock 类里 实现,用来判断方块的各种操作是否可行, 如果可行则执行相应的操 作,否则操作无效。控制方块时,首先要判断该操作是否可以执行, 判断方法主要有判断方块是否可以左右移动, 判断方块是否碰壁, 判 断方块是否触顶。 判断方块是否可以左移。 包括方块的翻转以及当某 一行的方块满后的消除功能。首先对俄罗斯方块的定义进行初始化, 如种类,方向,颜色,以及存放用的数组。俄罗斯方块需进行判断, 需要对每个单元块进行判断

15、, 例如是否能旋转, 需要每一个单元块都 能旋转,整个方块才能旋转,接着是判断是否接触边界,如果已接触边界,则不能左(右)移动,否则可左(右)移动,方块下落过程中 可加速,需判断是否接触底端或与其他方块接触,接触则不能加速, 反之可加速。4.3 俄罗斯方块的设计与实现通过构造函数, 定义随机产生方块种类以及对应填充色, 可随机 产生一个俄罗斯方块。 对俄罗斯方块的位置用坐标表示, 判断当一行 满之后,消除这一行并相应的分数增加。4.4 要点分析完成这个项目主要有几个问题要处理: 边界问题,即如何判断俄罗斯方块是否已经到达边界,主要是在 左右移动和下降过程中, 判断俄罗斯方块是否已经抵达边界,

16、使其不 超越边界。 接触问题,即如何判断俄罗斯方块已经与其他俄罗斯方块接触, 此时应该停止方块的下落,或者避免方块间重合。 旋转问题,俄罗斯方块要旋转很简单,只要用转换公式即可,但 问题是如何判断旋转后的位置是否不合法,即有没有可能触及边界, 或者与其他俄罗斯方块重合。 消去问题,当网格中有一行填满了方块,需要消去此行,并将在 其上的所有方块均向下移动一行,更新分数等相关信息。第和第个问题类似,每个俄罗斯方块(TetrisBlock )对象包含 四个更小的块单元 (BlockUnit), 在处理这两个问题的时候只要在块 单元类当中添加判断块单元对象是否接触边界或者其他俄罗斯方块 的块单元的方法

17、, 然后俄罗斯方块类的判断接触边界或其他俄罗斯方 块的方法,只需依次调用该俄罗斯方块对象的所有块单元对象的判断 方法,若其中一个块单元接触边界,则该俄罗斯方块接触边界。而边 界和方块接触问题都可以大致分为两类, a. 接触两侧边界或在两侧 接触其他俄罗斯方块, b. 接触网格底部边界或者方块接触其下的其 他俄罗斯方块。 这两类问题需要分开处理, 因为方块的下落和左右移 动是分开进行的, 当方块左右移动时不能穿过两侧边界或与其他俄罗 斯方块重合, 当方块下落时, 则不能穿过底部边界或穿过其下的俄罗 斯方块。第个问题,先克隆一个下落的俄罗斯方块,对其进行旋转操作,然 后判断其是否超越边界或者与其他

18、俄罗斯方块重合, 若其状态合法则 将下落的俄罗斯方块进行旋转操作,否则结束操作并返回。 第个问题, 用一个数组标记每行块单元个数, 并计算每行最多可填 入多少个块单元, 若某一行已经填满则, 删除每个俄罗斯方块中在该 行上的块单元,并且将在该行之上的块单元全部向下移动一行。五、设计总结通过这次俄罗斯方块课程设计, 不能说对这门课学到了很多, 而 是对俄罗斯方块这个游戏加深了了解, 通过它的设计过程, 在代码部 分我知道了它每一种功能实现的特点及怎样实现的, 俄罗斯方块是一 个很经典的游戏。首先我负责完成的部分是俄罗斯方块单元块的基本设计和控制, 在完成过程中,出现了许多的问题,开始我不知道怎么去编写,上网 查资料,资料很多,但是理解是个问题,最后我通过选择,开始了俄 罗斯方块代码的分析, 因为需要判断每一个单元块, 所以需要构造函 数,接着对单元块进行判断,首先是超界,这些代码是网上资料查到 的,但是不懂意思,再同组人把网格画出之后,进行了理解,产生俄 罗斯方块的时候,需要填充颜色,开始是每一种方块定义一个颜色, 后又改成随机产生填充色, 使方块下落时更美观, 在俄罗斯方块下落 时需进行一些判断, 开始没想到需要对每一个单元块进行判断, 后经 验证修改完成。在俄罗斯方块一行满之后要进行消除并更新游戏区域, 分数增加,但是当游戏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论