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

下载本文档

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

文档简介

1、计算机工程学院课程设计说明书课程名称: _设计项目: _学生姓名: _学号: _专业: _班级: _指导教师: _年 _月.一、任务与具体要求二、设计说明书包括的内容三、 应完成的图纸四、 评语及成绩指导教师(签字)_年 _月_日.目 录12233547514615716817系统概述1. 1 现状分析在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们.在使用计算机进行工作学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强, 易上手等诸多特点得到了大众认可,因此开发此游戏软件可满足人们的一些娱乐需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的

2、,界面美观的,易于控制的俄罗斯方块游戏。1.2项目要求俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件实现的基本功能如下:游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。游戏控制:玩家可以通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制。玩家游戏信息存储及删除:玩家的得分在前五名时,将会记录在排行榜上,同时可为玩家清空排行榜。1. 3 系统模块结构图依据需求分析结果, 俄罗斯方块游戏可以分为三个模块:游戏区、游戏控制区、数据操作区。系统模块结构如图:.游戏区俄罗斯方块游游戏控制数据操作原有程序概况2.1

3、 原有程序实现的功能原来程序只能实现开始和退出游戏,还有记录游戏的得分!类一:控制面板类( 1)类定义: class GameMain( 2)功能描述:界面设计应遵循简介美观方便易用的基本原则。类二:画布类类定义: class GameCanvas类三:方块类( 1)类定义: class RussiaBlock( 2)功能描述:七种类型方块的父类,定义了所有类型方块的共同特征和行为。.随机产生一个数1234567一字形Z 字形反 Z 形L 字形反 L 形倒 T 形田字型类四:主游戏类( 1)类定义: RussiaBlocksGame( 2)功能描述: 游戏主类,负责游戏的全局控制。类五:虚拟单

4、个方格类类( 1)类定义: RussiaBlocksGame;功能描述:控制方格的颜色。2. 2 原有游戏打开界面.2.3 原有游戏运行界面2.4 改进目标增加暂停和继续按钮,这样可以方便游戏者,可以暂停游戏。增加游戏的等级,这样可改变游戏的难易程度,增加游戏的趣味性。增加填写游戏者姓名的的功能,这样可以记录游戏者的名字。现在系统操作界面3.1 现在游戏打开界面.3.2 现在游戏运行界面.现在程序详细设计类一:控制面板类( 1)类定义: class GameMain( 2)功能描述:界面设计应遵循简介美观方便易用的基本原则。( 3)设计方法:方法 Game方法方法定义: PublicGameM

5、ain()功能描述: 这个方法就是要保证在放大和缩小程序实现窗口大小的时候,其中的格子也会随之改变, 也就是我们经常说的最大化.最小化,当窗口发生变化时,方块自动调整大小与之相匹配。方法: actionPerformed方法方法定义: public void actionPerformed ()功能描述:这个就是将游戏界面重置,将游戏界面回到初始状态,这个方法主要是通过将窗口中的着色小方块全部消除颜色,然后再重新去给窗口着色, 即着上背景色, 给玩家看上去也就是被刷新了。( 4)设计描述: controlPanel 面板中包含 tipPanel, InfoPanel, buttonPanel子

6、面板,分别为图形界面面板,信息面板,按钮面板 图形显示面板设计为BorderLayout 布局样式 . 其中添加tipPanel面板居中 ( 以显示下一个俄罗斯方块样式) 信息面板设计为 4 行 1 列式的 GridLayout 网格状布局 , 并且添加当前等级 , 显示当前等级文本域 , 当前分数 , 显示当前分数文本域按钮面板设计为 5 行 1 列式的 GridLayout 网格状布局 , 并且添加开始游戏 , 暂停 / 继续 , 结束三个按钮面板设计效果图如下:.类二:画布类( 1)类定义: class GameCanvas( 2)设计方法:方法: paintComponent 方法方法

7、定义 public void paintComponent(Graphics g)功能描述;其中 box 就是表示预显示框,然后检查显示框中每个小格子是否需要着色, 如果需要着色, 则着上方块得颜色, 不需要着色的则着上背景颜色,一共有 16 个小格子构成了一个预显示块,共需要检测 16 次,其实当中和实现游戏中的程序有着共同点。方法: removeLine 方法.方法定义: public void removeLine(int row)功能描述:这个就是实现如何将行消除的,其实就是在判断了该行该消除的时候将上面的方块都向下平移一格,这样在实现程序界面也就给玩家是消去一行的视觉效果。类三:方块

8、类( 1)类定义: class RussiaBlock( 2)功能描述:七种类型方块的父类,定义了所有类型方块的共同特征和行为。随机产生一个数1234567一字形Z 字形反 Z 形L 字形反 L 形倒 T 形田字型( 3)设计方法:方法: run 方法方法定义: public void run()功能描述:实现方块的运行,下落。方法: moveTo方法方法定义: public synchronized boolean moveTo()功能描述:将当前画移动到newRow/ newCol所指定的位置。方法: isMoveable 方法.方法定义: private boolean isMoveab

9、le()功能描述:判定当前块是否能被边界、其他方块挡住以及不能移动的情况。方法: turnNext 方法方法定义: public void turnNext()功能描述:实现方块的旋转。方法: turnTo 方法方法定义: private synchronized boolean turnTo()功能描述:将当前块变成newStyle 所指定的块样式。方法: isTurnable方法方法定义: private boolean isTurnable()功能描述:判定当前块是否能变成newStyle 所指定的块样式。方法: erase 方法方法定义: private void erase()功能描

10、述:将当前块从画布的对应位置移除。方法: display方法方法定义: private void display()功能描述:实现重画画布的时候显示当前块。类四:主游戏类( 1)类定义: RussiaBlocksGame( 2)功能描述: 游戏主类,负责游戏的全局控制。.(3)设计方法:方法: checkFullLine方法方法定义: public void checkFullLine()功能描述: 这个是表示的清除需要消除的行的算法,只需要对行中的小方块进行判断, 判断是否都已经着色, 如果都着色了说明改行是要消除的, 而且还需要进行加分措施, 在进行多行消除的时候,可以给玩家更多的奖励,这

11、也符合俄罗斯方块的游戏股则。方法: play 方法方法: private void play()功能实现:实现游戏开始,同时在游戏的开始时,方块随即从顶端的任何位置落下。方法: getCurLevelScore方法方法定义: public int getCurLevelScore()功能描述:实现获得每个等级的分数方法: setLevel方法方法定义: public void setLevel(int level)功能描述:进行等级的手动调节方法: levelUpdate方法方法定义: public void levelUpdate()功能描述:这是更新等级的函数,一个是通过分数的判断,在程序

12、中定义了一个本级得分,然后当本级得分达到一个分数的时候,就可以进入下一个等级, 同时根据等级的提高, 之前定义的下.落速度也会提高, 同时减去升级需要的分数, 也就可以用作下一次升级的判断。(4) 设计描述:窗体设计窗体大小:( 300,400),默认居中显示,代码如下:Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize(); setLocation(scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);添加 windows 窗口事件:add

13、WindowListener( new WindowAdapter()public void windowClosing(WindowEvent event)System.exit(0); );窗体名称为:俄罗斯方块游戏。菜单设计游戏菜单:包括重新游戏,退出两个菜单项。控制菜单:包括暂停,继续,结束三个菜单项。以菜单项为例gameMenu = new JMenu( 游戏 );newGameItem = new JMenuItem(重置 );exitItem = new JMenuItem(退出 );gameMenu.add(newGameItem);.gameMenu.add(exitItem

14、);添加背景音乐方法public void Music ()Stringmusic = background.wav;finalAudioClipclip=Applet.newAudioClip(getClass().getResource(music); clip.play();通过调用 Music()来实现背景音乐播放。类五:虚拟单个方格类类( 1)类定义: RussiaBlocksGame( 2) 功能描述:控制方格的颜色。( 3) 设计方法:方法: setColor方法方法定义: public void setColor()功能描述:对有标记的方块进行着色用户手册控制区:玩家在界面上可

15、以看到开始游戏的按钮,点击该按钮,开始游戏,控制区和界面上都有暂停,继续的按钮,按下暂停则游戏暂停,并且界面上的按钮变成继续的字样,同理按下继续,游戏退出,用户结束游戏。.游戏菜单区:重置:如果玩家在结束了游戏或者在游戏中向开始进行新的游戏,则可以点击该按钮,如果玩家不想继续玩得话,直接点击结束按钮结束游戏,并退出窗口。控制菜单:暂停,继续,退出游戏的功能都和控制区一样的效果关于菜单:该菜单游戏的操作的简介,方向键的左,下,右就是游戏中的操作方法,方向键上则是对图形的反转变化。测试计划右侧按钮测试1. 点击“开始 / 重置” 按钮效果:游戏开始与重置结果:正常2. 点击“暂停 / 继续” 按钮

16、效果:游戏根据操作能暂停与继续相互切换结果:正常3. 点击“结束” 按钮效果:游戏重置,屏幕重新刷新结果正常键盘事件的功能测试1. 方块移动测试游戏过程中,点击“左、右、下”方向键输出:方块正常移动,不会移出边界.结果:正常2. 方块反转测试游戏过程中,点击向上方向键输出:方块无边界和障碍物阻挡的情况下可反转结果:正常方块堆砌与消行测试1. 当方块下落到最底面或与障碍物接触时输出:方块成功堆砌在底部结果:正常2. 当出现满行现象时输出:所有满行被消除,方块依次下移结果:正常课程设计心得体会课程设计是培养学生综合运用所学知识, 发现 , 提出 , 分析和解决实际问题 , 锻炼实践能力的重要环节,

17、 是对学生实际工作能力的具体训练和考察过程 .Java 语言是一门强大的语言,比我们所学过的C语言有很强的功能,可以有美化的图形界面设计,可以连接数据库,解决用文件存储的繁琐过程,使得软件所产生的数据更容易管理和维护。在设计初期时, 组员通过交流,讨论,定下了课题俄罗斯方块游戏。分工之后,将整个课题分为三个部分。在编程阶段,我们发现一学期所学的知识难易填补课题所需的知识漏洞,通过参考课外书.籍,网络资源, 掌握了课本之外的一些技巧与知识。我们在课程设计的同时感觉到我们还欠缺很多。 通过此次课程设计, 我们对专业知识又有了更进一步的了解,对培养我们专业兴趣起到良好的推动作用。课程设计在衔接之时也遇到一些问题,有一些程序BUG,经过讨论修改,完善了程序。因为是分工作业,所以相互之间的交

温馨提示

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

评论

0/150

提交评论