ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:24.21KB ,
资源ID:8083614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8083614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java课程设计俄罗斯方块doc.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java课程设计俄罗斯方块doc.docx

1、java课程设计俄罗斯方块docJava课程设计报告2010 / 2011 学年 第 二 学期项目名称:俄罗斯方块游戏项目负责人:李俊杰学号:09030317同 组 者:田 俊学号:09030325同 组 者:殷崧健学号:09030335指导教师:费贤举班级:09 软件课程设计时间:2011年 6 月 21 日-2011年 7 月 7 日课程设计地点:秋白楼 B705常州工学院计算机信息工程学院2011年 7 月 7 日1系 概述 32 目 划 以及小 人 分工 43系 流程 54系 操作界面 85 96用 手册与游 帮助 187 划 208改 意 229 程 心得体会 2310参考 籍及 料

2、 24系统概述1.1 现状分析在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作学习之余休闲娱乐的首选, 而俄罗斯方块游戏是人们最熟悉的小游戏之一, 它以其趣味性强, 易上手等诸多特点得到了大众认可,因此开发此游戏软件可满足人们的一些娱乐需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。1.2 项目要求俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件实现的基本功能如下:游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。游戏控制:玩家可以通过游戏控制功能

3、来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制。玩家游戏信息存储及删除:玩家的得分在前五名时,将会记录在排行榜上,同时可为玩家清空排行榜。1. 3 系统模块结构图依据需求分析结果, 俄罗斯方块游戏可以分为三个模块: 游戏区、游戏控制区、数据操作区。系统模块结构如图:游戏区俄罗斯方块游 游戏控制数据操作项目计划书以及小组人员分工2.1 项目开发计划书名称时间工作内容1 天说明如何着手设计的方法和设计任下达设计任务务的解释说明。项目组在组长的组织下选题、 分析,搜集、分析资料及档案2 天识别实体,完成项目开发计划书及小组人员分工。2 天完成系统层次图、用户界面设计、设计数据库表设计,

4、完成设计说明书程序编写和测试7 天根据方案进行现场编程和调试编写设计文档2 天完成软件测试以及用户操作手册的编写文档提交、答辩 1 天 提交文档,进行答辩2.2 小组人员分工表姓名任务分配组长李俊杰游戏界面设计,游戏控制按钮功能实现,文档编写等。组员田俊游戏区操作的实现,显示操作结果以及大部分游戏算法的编写。组员殷崧健数据库的设计与运行,方块构造与变形,以及部分算法的编写。系统流程图3. 1 游戏区模块该模块为玩家提供主题游戏功能,能够处理玩家的各种操作,为玩家提供下一个方块的提示、当前等级、当前分数的显示。该模块应包括三个字功能模块:创建游戏区、处理玩家游戏操作区、游戏显示区。模块功能树如图

5、:创 建 游 戏处 理 玩 家游 戏 区 模游 戏 操 作游 戏 显 示3 2 游戏控制区模块该模块为玩家提供游戏控制功能, 包括开始游戏、 暂停 /继续游戏、结束游戏、等级设置。玩家可自行设定游戏等级,主要提供10 种级别,级别越高,游戏速度越快,难度越大。模块功能树如图:开始游戏暂停 / 继续游游戏控制区模 结束游戏等级设置音效开关3 3 数据操作区模块该模块为玩家提供游戏、玩家信息存储与查询功能。包括排行榜信息录入、排行榜查询、排行榜清空、游戏帮助,四个模块。模块功能树如图:排行榜信息录排行榜查询数据操作区模排行榜清空游戏帮助3 4 系统流程描述此流程图为俄罗斯方块游戏系统流程描述。开始

6、随机选择方查询排行榜设置初始级别块类型清空排行榜创建游戏区显示下一个方块查看游戏帮助游戏开局是查看制作团队是否到达顶部显示游戏结果否方块下落一是行输入玩家姓名是否录入数据库处理玩家操否作输出排行榜否是是否到达底部结束系统操作界面4.1 游戏打开界面4.2 游戏运行界面详细设计类一:控制面板类(1)类定义: class ControlPanel(2)功能描述:界面设计应遵循简介美观方便易用的基本原则。(3)设计方法:方法: fanning 方法方法定义: public void fanning()功能描述: 这个方法就是要保证在放大和缩小程序实现窗口大小的时候,其中的格子也会随之改变, 也就是我

7、们经常说的最大化最小化,当窗口发生变化时,方块自动调整大小与之相匹配。方法: reset 方法方法定义: public void reset()功能描述:这个就是将游戏界面重置,将游戏界面回到初始状态,这个方法主要是通过将窗口中的着色小方块全部消除颜色, 然后再重新去给窗口着色, 即着上背景色, 给玩家看上去也就是被刷新了。(4)设计描述: controlPanel面板中包含tipPanel, InfoPanel, buttonPanel子面板,分别为图形界面面板,信息面板,按钮面板 图形显示面板设计为 BorderLayout 布局样式 .其中添加tipPanel 面板居中 (以显示下一个俄

8、罗斯方块样式 ) 信息面板设计为 4 行 1 列式的 GridLayout 网格状布局 ,并且添加当前等级 ,显示当前等级文本域 ,当前分数 ,显示当前分数文本域 按钮面板设计为 5 行 1 列式的 GridLayout 网格状布局 ,并且添加开始游戏 , 暂停 /继续 ,结束,加等级,减等级五个按钮Bar 栏中添加五个菜单按钮,分别为游戏菜单,控制菜单,排行榜菜单,音效菜单,关于菜单。 游戏菜单里有新游戏,退出两个选项卡,窗口样式菜单里有 windows,motif,ment 这 3 种样式选项卡,信息菜单里面有作者,帮助两个选项卡面板设计效果图如下:类二:画布类(1)类定义: class

9、GameCanvas(2)功能描述: 在游戏区显示方块(3)设计方法:方法: paintComponent 方法方法定义 public void paintComponent(Graphics g)功能描述;其中 box 就是表示预显示框,然后检查显示框中每个小格子是否需要着色, 如果需要着色, 则着上方块得颜色, 不需要着色的则着上背景颜色,一共有 16 个小格子构成了一个预显示块,共需要检测 16 次,其实当中和实现游戏中的程序有着共同点。方法: removeLine 方法方法定义: public void removeLine(int row)功能描述:这个就是实现如何将行消除的,其实就

10、是在判断了该行该消除的时候将上面的方块都向下平移一格, 这样在实现程序界面也就给玩家是消去一行的视觉效果。类三:方块类(1)类定义: class RussiaBlock(2)功能描述:七种类型方块的父类,定义了所有类型方块的共同特征和行为。随机产生一个数1234567一字形Z 字形反 Z 形L 字形反 L 形倒 T 形田字型(3)设计方法:方法: run 方法方法定义: public void run()功能描述:实现方块的运行,下落。方法: moveTo 方法方法定义: public synchronized boolean moveTo ()功能描述:将当前画移动到 newRow/ new

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

12、否能变成 newStyle 所指定的块样式。方法: erase 方法方法定义: private void erase()功能描述:将当前块从画布的对应位置移除。方法: display 方法方法定义: private void display()功能描述:实现重画画布的时候显示当前块。类四:主游戏类(1)类定义: RussiaBlocksGame(2)功能描述: 游戏主类,负责游戏的全局控制。(3)设计方法:方法: datasort 方法方法定义: public void datasort()功能描述:实现连接数据库,并对数据库中所有数据进行排序输出。方法: reportGameOver 方法方

13、法定义: private void reportGameOver()功能描述:实现输出游戏总分,输入用户姓名,录入数据库并显示最新排行。方法: datasortdelete 方法方法定义: public void datasortdelete()功能描述:实现排行榜清空。方法: checkFullLine 方法方法定义: public void checkFullLine()功能描述: 这个是表示的清除需要消除的行的算法,只需要对行中的小方块进行判断, 判断是否都已经着色, 如果都着色了说明改行是要消除的, 而且还需要进行加分措施, 在进行多行消除的时候,可以给玩家更多的奖励,这也符合俄罗斯方

14、块的游戏股则。方法: play 方法方法: private void play()功能实现:实现游戏开始,同时在游戏的开始时,方块随即从顶端的任何位置落下。方法: getCurLevelScore 方法方法定义: public int getCurLevelScore()功能描述:实现获得每个等级的分数方法: setLevel 方法方法定义: public void setLevel(int level)功能描述:进行等级的手动调节方法: isGameOver 方法方法定义: private boolean isGameOver()功能描述:该方法是判断游戏是否该结束了,只需要判断窗口中的最顶

15、端那一行中是否有方块,同时也要判断最底端的是否也有,如果都有程序会自动弹出“游戏结束”的对话框,然后进行数据的记录,存入数据库,写入排行榜,可以供玩家进行参考,判断最底端的是因为,在游戏开始的时候直接结束游戏也会弹出对话框,为了避免这个问题, 加一个判断对的条件, 基本可以实现原来计划的功能。方法: levelUpdate 方法方法定义: public void levelUpdate()功能描述:这是更新等级的函数,一个是通过分数的判断,在程序中定义了一个本级得分,然后当本级得分达到一个分数的时候,就可以进入下一个等级, 同时根据等级的提高, 之前定义的下落速度也会提高, 同时减去升级需要的

16、分数, 也就可以用作下一次升级的判断。(4) 设计描述:窗体设计窗体大小:(300 ,400 ),默认居中显示,代码如下:Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize(); setLocation(scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);添加 windows 窗口事件:addWindowListener( new WindowAdapter()public void windowClosing(WindowEvent ev

17、ent)System.exit(0); );窗体名称为:俄罗斯方块游戏。菜单设计菜单条设计:包括游戏菜单,控制菜单,排行榜菜单,音效菜单,关于菜单。游戏菜单:包括重新游戏,加等级,减等级,退出四个菜单项。控制菜单:包括暂停,继续,结束三个菜单项。排行榜菜单:包括排行榜显示,清除排行榜数据。音效菜单:包括音效的开与音效的关。关于菜单:包括制作人,与帮助。以菜单项为例gameMenu = new JMenu( 游戏 );newGameItem = new JMenuItem( 重新游戏 );turnHardItem = new JMenuItem( 加等级 );turnEasyItem = new

18、 JMenuItem( 减等级 );exitItem = new JMenuItem( 退出 );gameMenu.add(newGameItem);gameMenu.add(turnHardItem);gameMenu.add(turnEasyItem);gameMenu.add(exitItem);添加背景音乐方法public void Music ()String music = background.wav;final AudioClip clip =Applet.newAudioClip(getClass().getResource(music); clip.play();通过调用

19、Music ()来实现背景音乐播放。类五:虚拟单个方格类类(1)类定义: RussiaBlocksGame(2) 功能描述:控制方格的颜色。(3) 设计方法:方法: setColor 方法方法定义: public void setColor ()功能描述:对有标记的方块进行着色用户手册与游戏帮助控制区:玩家在界面上可以看到开始游戏的按钮,点击该按钮,开始游戏,控制区和界面上都有暂停,继续的按钮,按下暂停则游戏暂停,并且界面上的按钮变成继续的字样,同理按下继续,游戏继续,用户界面上面还有等级的增加和降低,直接点击按钮就可以实现对等级的操作游戏菜单区:新游戏:如果玩家在结束了游戏或者在游戏中向开始

20、进行新的游戏, 则可以点击该按钮, 同时可以进行等级的设置,如果玩家不想继续玩得话,直接点击结束按钮结束游戏,并退出窗口。控制菜单:暂停,继续,退出游戏的功能都和控制区一样的效果排行榜菜单:可以查看游戏的最高分的排行榜,可以准确地定位自己分数的档次,同时也可以对排行榜进行清空,也就是排行榜中没有了数据了。音效菜单:可以对游戏过程中的背景音乐和游戏中的声音进行开关,玩家用起来非常方便关于菜单:该菜单包含两个模块,一个是游戏的操作的简介,方向键的左,下,右就是游戏中的操作方法,方向键上则是对图形的反转变化,空格键则是一键到底的快捷键。第二个模块则是制作人,即是该游戏的制作人的说明。游戏规则游戏软件

21、随即不断的下落其中方块中的一种,玩家在方块落到底部之前将方块尽量整齐的摆放好, 以便能够对满一行进行消除, 玩家可以旋转,左右移动方块, 以选择最佳的摆放位置和方式,也可以加快下落的速度,甚至可以直接落到底部,以便节省游戏的时间。当方块落到底部的时候, 就不能进行操作的, 此时会在顶部出现另一个方块。在堆放方块的时候,如果一行堆满的话,则进行消行,上面的方块自动的向下移动一行。消除一行可以得到 100 分,同时消除多行的时候可以进行更多的奖励,累计达到 2000 分的时候可以自动提高游戏的等级,当游戏到达最高等级的时候就不再进行等级的提高。 同时在游戏的同时也可以听听背景音乐, 放松心情。在游

22、戏的开始和结束的时候都可以对排行榜进行访问, 可以对自己的游戏水平进行一个正确的评价。测试计划7 1 右侧按钮测试1.点击“开始游戏”按钮效果:游戏开始结果:正常2.点击“暂停/继续”按钮效果:游戏根据操作能暂停与继续相互切换结果:正常3.点击“结束”按钮效果:游戏重置,屏幕重新刷新结果正常4.点击“加等级”按钮效果:游戏等级加一级,游戏界面显示出加后的等级。结果正常3.点击“减等级”按钮效果:游戏等级加一级,游戏界面显示出减后的等级。结果正常7.2 界面菜单选项的功能测试1.“游戏”菜单的测试点击“游戏” “重新游戏”效果:界面重置。结果:正常2.点击“游戏”“加等级”效果:游戏等级加一级,

23、游戏界面显示出加后的等级。结果:正常3.点击“游戏”“减等级”效果:游戏等级加一级,游戏界面显示出减后的等级。结果:正常4.点击“游戏”“退出”效果:游戏结束,关闭窗口结果:正常4.点击“排行”“查询排行榜信息”/“清除排行榜信息”结果:正常5.点击“音效”“音效开/”“音效关”效果:背景音乐开与关结果:正常6.点击“关于”“制作人/”“帮助”结果:窗口弹出正常7.3 键盘事件的功能测试1.方块移动测试游戏过程中,点击“左、右、下”方向键输出:方块正常移动,不会移出边界结果:正常2.方块反转测试游戏过程中,点击向上方向键输出:方块无边界和障碍物阻挡的情况下可反转结果:正常7.4 方块堆砌与消行

24、测试1.当方块下落到最底面或与障碍物接触时输出:方块成功堆砌在底部结果:正常2.当出现满行现象时输出:所有满行被消除,方块依次下移结果:正常7.5 消行音效测试 :结果正常。改进意见系统中还存在一些不足之处,可以对本系统做如下修改:1、 做进一步地功能拓展和研究,如添加 FLSAH 效果等。2、 设计玩家进入游戏的界面。3、 添加背景图片,让游戏更加生动。4、 对软件进行更详细的测试,以保证软件的可用性和适用性。5、 添加互联网操作,实现网络对战。课程设计心得体会课程设计是培养学生综合运用所学知识 ,发现 ,提出 ,分析和解决实际问题 ,锻炼实践能力的重要环节 ,是对学生实际工作能力的具体训练

25、和考察过程 .Java 课程设计是对我们本学期学习的一个总结,通过一个全面的课题实验来检验和巩固我们一学期来所学的知识, 通过团队之间的合作,交流,切身体会软件编程的经历。Java 语言是一门强大的语言,比我们所学过的 C 语言有很强的功能,可以有美化的图形界面设计,可以连接数据库,解决用文件存储的繁琐过程,使得软件所产生的数据更容易管理和维护。我们本次的课程设计运用到了线程创建运行, 图形化界面,与数据库,使得课题得到合理的体现。在设计初期时,组员通过交流,讨论,定下了课题俄罗斯方块游戏。分工之后,将整个课题分为三个部分。在编程阶段, 我们发现一学期所学的知识难易填补课题所需的知识漏洞,通过

26、参考课外书籍,网络资源,掌握了课本之外的一些技巧与知识。我们在课程设计的同时感觉到我们还欠缺很多。 通过此次课程设计,我们对专业知识又有了更进一步的了解, 对培养我们专业兴趣起到良好的推动作用。课程设计在衔接之时也遇到一些问题,有一些程序 BUG ,经过讨论修改,完善了程序。因为是分工作业,所以相互之间的交流是十分重要的,每次进度的保存要记录,这样方便组员之间共享。因为专业水平还有不足,所以程序不算完美,有一些功能没有得到实现,这也激励着我们在以后的专业课学习中, 要更加的努力, 填补知识的空缺。经过三周的课程设计, 俄罗斯方块游戏也可以运行,有了此次宝贵的经验,相信以后的对以后的课程设计有更大的帮助。参考书籍及资料1、JAVA 编程宝典李钟尉 陈丹丹 张振坤编著,人民邮电出版社

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

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