




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与计算科学专业工 程 实 训 报 告题目:经典游戏俄罗斯方块班级:信息与计算科学07-2姓名:XX2010年11月21日摘 要这是一款小型游戏,多出现在手机,MP4等小型数码展品中。有趣且好玩,是人们在休闲娱乐时,消遣和打发时间的不错选择。想要玩好它,你就得有灵活的手指掌控能力,且需要有缜密、灵活的头脑思维,以为下一步的下落位置做好预判。具体规则,在以下做步骤详解。此款游戏老少皆宜,说了这么多还没说这到底是怎样的一款游戏。“俄罗斯方块”,顾名思义,就是不同形状和规格的块状物下落至指定位置。且不能越界,一旦出界即输。此次游戏的设计,我只完成了简单、大致的游戏功能块。如要更加完整,也可增加和完善功能,比如添加更炫的背景和颜色,或设置分数计数器,当块合并消去后,你的分数会相应的增加,当你开始这款游戏,。你一定会爱不释手的,那么现在就开始让我们一起伸开双手,开始我们的手指健身操吧。关键词:游戏 俄罗斯方块 手指AbstractIt is a in miniature game. And it usually appears in the digital product like mobile and MP4 and so on. It is amusing and interesting. People also can recreate themselves with it. If you want play it well ,you must command with a flexible figure and meticulous brain. Then you can prepare it well for the next step .The concrete rules will be introduce in the follow article. This kind game is adapt to the order and youngster. Now I will tell you what the game is ? Obviously , it means that many block should be unite and disappear .And it can not out of the borderline and leave the board. So you will be lose if you do. Here I made it only a part of this game . If you are interest in this game ,you can finish and make it more perfectly. Now Lets play it with our figure .Key words: game Muscovite square figure目 录摘 要IAbstractI目 录I第1章绪论11.1选题背景及影响11.2 主要设计内容21.3 章节内容简介2第2章 需求分析42.1游戏的执行原理42.2基本功能42.2.1 游戏规则42.2.2 游戏功能实现的步骤52.2.3 涉及知识内容5第3章 功能模块与流程图63.1功能模块63.2JAVA部分流程结构图形7第4章 算法功能描述10结 论13致 谢14参考文献15附录1 设计系统部分源代码16I正文内容:除了一、二、三、四级标题外,正文文本为宋体小四号字,20磅行距。中文文本中的括号、标点符号为中文半角状态下的括号、标点符号,英文的括号、标点符号为英文半角状态下的括号、标点符号。图、表的题头为黑体五号字、其中的文本为宋体五号字,图、表所在段落为单倍行距。正文页码:阿拉伯数字,宋体小五号字,页面底端居中(默认格式)。第1章 绪论一款小游戏不仅可以放松心情,也可以激起人们对生活的乐趣,尤其对于像我这样的学生来说,在学习JAVA等程序设计过程中往往会感到枯燥乏味,而一个小游戏不仅可以引起我对兴趣也能帮助我对编写程序的理解与加深。面向对象技术被称为是程序设计方法学的一场革命,他已经逐步替代了面向过程的程序设计技术,成为计算机应用开发领域的主流技术。面向对象技术比较符合人们观察世界和处理问题的思维模式,而将数据与处理数据的操作封装在一起的机制也符合现代大规模软件开发的要求,并易于实现软件的复用。游戏的初步设计,构思。1.1选题背景及影响从上世纪末开始,网络的应用与普及更加广泛,而由于网络和计算机的交融和拓展,逐渐被人们应用于不同领域,其中也应运而生了许多游戏。以致发展到目前网络上流行的大型网游。而这些游戏的发展都离不开许多小型游戏的开发和普及所带来的影响。可以说研究小游戏的编译在对于初学者来说是对程序的一中感性的认识,也能对今后学习程序的开发等带来不小的促进作用,为今后更广阔的软件开发奠定扎实的基础。1.2 主要设计内容本管理系统以Eclipse为主开发工具, Eclipse是一款集成开发软件工具。Eclipse是一款免费的且应用广泛的软件而Eclipse提供的JAVA集成开发工具也相当的丰富,Eclipse 从起初作为服务于软件开发的集成平台,逐步演变为可以宿主任何一桌面为中心的应用程序平台。同时采用SQL Server2000来创建数据库的连接。本游戏可满足玩家的基本操作。1.3 章节内容简介第1章为绪论,主要介绍游戏的选题背景及其影响,以及主要设计内容。变量声明的各值属性见下表:表1 各变量的属性值表字段类型长度备注gesInt5正下落的块shiGesInt5落实的块fangAnInt5造新块jiShuQiInt5计数器jianGetext25间隔以上定义了游戏中各个指定值在数据库中的类型和字段等。第2章为需求分析,首先介绍俄罗斯方块游戏的执行原理和基本功能,其中包括图像的显示,键盘的左右移动,边界值的设置等功能模块的实现。还有所涉及到相关知识内容。并设置其游戏规则,输赢主要由手指掌控操作灵活度决定。最后是功能实现步骤。第3章为功能模块和流程图,画出了游戏各个主要功能的实现模块,以及所使用的语句的JAVA流程结构图,包括主要有消行、出界和被挡。最后显示运行成功后的运行结果图。第4章为算法描述:各个主要功能实现的详细算法介绍。其中附有部分代码,并运用了二维数组和遍历循环的知识。最后在理论上和具体实施上做出可行性分析。完成所有的功能操作后,先进行调试,找出错误并做修改直至没有错误达到最终结果,然后做出总结归纳。3第2章 需求分析俄罗斯方块是每个人儿时几乎都玩过的游戏,还记得小时候经常用父亲的手机玩这一游戏。从最初的不了解到后来的高手,想想都让人回味。虽然是那么的简单,但却是充满了无穷的乐趣,对我而言是一段美好的回忆。2.1游戏的执行原理俄罗斯方块是一项简单,易懂的小游戏。是通过不同小方块组成的不同形状的自由下落和背景组成的基本页面。并通过手指操作键盘来实现小人的变化。用上键控制方块的360度方向转变,左右键控制方块的左右移动。为满足玩家的更多要求还可以增加方块的不同颜色的变化以及分数等。2.2基本功能2.2.1 游戏规则方块不能出界,即当方块合并叠加后超出了框架的范围,即为出界。游戏结束。因此需要灵活的手指操作能力。规则相对来说还是很简单的,只要玩几次就能很好的掌握,并不难。2.2.2 游戏功能实现的步骤1、图像的显示2、下落的块与落定的实块3、块的下出界与下被挡4、决定是否下落5、块的合并6、消去整行7、造一个新块8、块的360度方向变化2.2.3 涉及知识内容本游戏运用了数组的相关知识,还包括循环、选择、顺序等语句的应用。数组是JAVA容器类的一种。是用来存储一组固定的,有顺序且不重复的数据的。它是学习JAVA最基础的知识点,熟悉了数组对今后的JAVA编程会有很大的帮助。 同时像for, if else, while等语句也是构成本游戏的基本语言。其中数组是完成这一游戏设计的最基本的知识点,而循环语句的多次使用也是完成设计的一部分。第3章 功能模块与流程图3.1功能模块本图主要介绍了俄罗斯模块所需要实现的各个功能。这是游戏设计的出发点和考虑的基本要素。图1 游戏功能模块图图中右侧分支做有书签字样标记的是基本要实现的功能,而用感叹号做标记的是可加可不加的功能。左侧的分支是拓展空间与注意提示等。尤其是对可能出现的错误要考虑清楚。3.2JAVA部分流程结构图形流程结构图形包括对“方块的消行”,“出界”等的描述:被挡:指方块下落过程中,被实块所档,即无法在下落,也变成实块。其他功能的流程结构图亦类似。这里主要画了这两个主要的流程图。详细算法分析见下介绍。以下只列出了“出界”和“消行”两种情况。出界:方块下落后叠加超出框界限。运用if else 语句,如果每列19行都!=0那么条件假设出界成立,否则不执行。图2消行:指当下落后的块在某一行值都为1,即方块占满整行,则消去这一行。运用:3个for循环遍历嵌套,一个if else 判断首先判断计数器内书是否为0或1,如果计数器累计达10则从看行-1到0开始循环,再从0到10循环,并把上一行的值给下一行。从而达到消行的目的。图3最终运行界面如下:图4运行图有:分数、级别、各种颜色的块、开始和暂停键组成。再加上一些个人喜欢的插图以增加游戏的趣味性。第4章 算法功能描述1、首先要显示背景图:更具所提供的已有图片在绘图的任务指定区编写并变现代码如下:Image tu=(new ImageIcon( 俄罗斯图片/2/背景-1.png ).getImage();g.drawImage(tu,0,0,null);注意:在选择图像的地址时只需打开图的属性,复制即可。2、显示落块的图:代码实现如下:Image tuKuai=(new ImageIcon(俄罗斯图片/2/+geshl+.png ).getImage();g.drawImage(tuKuai,l*30+30,h*30+5,null);变量h,l 也包括颜色的随机变化。其中行h、列l值是变量,即更据所给初始值的形状随机显示。变量要加符号+ +。除此之外,还要对图进行循环遍历。3、显示实块也是如此,不同的是将变量改为常量。4、分别定义落块与实块:正在下落的块:即方块自由定时下落,随固定时间随机是不停地下落,这里运用二维数组创建int ges = new int2010;不能再动的块:即落在下面固定不再动的块,这里运用二维数组创建int shiGes = new int2010;5、初始化设置:即初始的方块图形:ges03 = 1;ges04 = 1;ges05 = 1;ges13 = 1;6、被挡需要判断落块是否有下一个实块。如果下一个落块是固定不动的,即落实的块,则落块无法再在下落,与是被当。用双循环遍历for for语句。以及选择判断:if 语句if (geshl!=0& shiGesh+1l!=0 ) jiaSheXiaBeiDang = true;7、键盘的实现: 键盘上键主要负责方块的360度方向的变化,以更好的与实块合并从而为消行做最好的解决方案。int xl = zl+zh-h;int xh = zh-zl+l; 键盘左右键则是负责方块的左右移动。右移同时也包括判断出界的语句:if (gesh9!=0) jiaSheYouChuJie = true; else 这里玩家还可以将键盘下键设置为加速方块移动的功能键。则这里我没做设计。8、造新块:定时的随机造出3种方案的方块形状。并按定时时间向下落。这3种方案分别为:ges03 = tu; ges 04 = tu; ges 05 = tu; ges 14 = tu;ges03 = tu;ges04 = tu;ges13 = tu;ges14 = tu;ges03 = tu;ges04 = tu;ges05 = tu;ges06 = tu;随机数可用公式:Math.random()这里用: int tu = (int) (Math.random()*11)+1; int fangAn = (int) (Math.random()*3);9、合并指将落块给实块,也变成实块。同样用双循环语句for for 以及判断选择 if else 语句:if (geshl!=0) shiGeshl = geshl;geshl = 0; else 以上这些功能的实现均用到了数组等知识,并有都用到了循环遍历以及判断选择,这是游戏的8个主要功能的实现,完成了这些功能的算法,那么可以说这个游戏基本已经完成。主要的方法基本都已经实现,如要加大功能也可做进一步的完善和改进。最后所要做的工作是调试及运行看是否满足预期的目标。如不行再继续修改和增删,运行成功并满足需求后形成报告。29结 论首先,本游戏使用Eclipse集成JAVA开发环境,完成其运行的框架和功能。功能主要分为主程序和调用函数。运用了本软件带有的Game 生成程序,创建一新的Game 主程序,在以此将分析结果转为代码,从而真正实现游戏的操作。最后可以调试,修改以最终完成整个游戏的设计。此款游戏还有其特有的好处:据英国某一科学家测试验证表明,这一游戏有助于缓解遇到特大自然灾害的幸存者的心理,原因是当受害者在操作这一游戏时,会占用大脑中大部分资源,以使玩家暂时忘记灾害的痛苦程度。有助其逐渐恢复平静状态。是不是觉得很神奇啊!通过此次课程设计,对我的综合知识有了很大的促进作用,包括数据库理解,JAVA的运用和掌握。虽然整个报告并不是非常的完美,还有许多需要修改的地方也请老师多多包含,也感谢老师的指导和建议。致 谢在工程实训设计阶段,有幸的投到我的导师赵福军、刘忠艳老师门下,开始我的设计生活。在通过这次工程实训,我认真的并亲自完成了这份报告,通过此次实践操作,确实增强了自身的实践能力和思维能力,虽然没有在学校里全程跟随老师进行上机练习,不过我在校外也同的完成了课程设计,在对基础理论知识掌握的基础上,更加深了理论实践结合的能力。并能更好的学以致用。在实践的过程中,我们碰到了很多的问题,但都在老师的耐心指导下,最终形成了这份报告,也学会了许多东西。正是在老师的不辞辛劳,我才能取得了显著地进步,在此我想你们致以最真心的感谢,并祝愿你们桃李满天下!参考文献1 顾自新,王炳同.物流信息系统开发策略研究J.物流科技,2006,(1):10-132 蒋宝家,郑荣,董绍华,等.可视化仓库管理系统的设计J.物流科技,2005,(9):178-1803 郝刚.ASP.NET服务器控件开发M.北京:人民邮电出版社,2003:34-364 凯西.施瓦尔贝.IT项目管理M.王金玉译.北京:机械工业出版社,2003:15-185 J.Hamilton, T.Nayak. Microsoft SQL Server Full-Text Search. IEEE Data Engineering Bulletin, December,2001 6 郑阿奇,刘启芬,顾韵华.SQL Server 实训M.清华大学出版社,2005 7 王勇,张发勇,周顺平.CMM软件配置管理的理论与实践J.计算机工程与应用,2004,(23):102-108 宋坤,李严,王国辉.数据库开发实例解析M.机械工业出版社,20069 马里杰.SQL Server数据库开发经典案例解析.清华大学出版社,2006.1.10 王珊,陈红. 数据库系统原理教程M.北京:清华大学出版社,2004.6.附录1 设计系统部分源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ELuoSiFangKuaiCS/TODO:变量“声明”在此/* * 正在下落的块 */int ges = new int2010;/* * 落实 不能再动的块 */int shiGes = new int2010;int zh = 0;int zl = 4;窗口ck= null;定时器ds1= null;ELuoSiFangKuaiCS()/TODO:程序初始化在此ges03 = 1;ges04 = 1;ges05 = 1;ges13 = 1;ck = new 窗口();/窗口 宽+2*立体边, 高+2*立体边+标题栏ck.setSize(5 * 2 + 600, 600 + 2 * 5 + 25);/设定窗口可见性setVisible true/falseck.setVisible(true);/延时的毫秒ds1 = new 定时器(200);class 窗口 extends JFrame菜单cd= null;面板mb= null;窗口监听器exit= null;键盘监听器jp= null;窗口()jp = new 键盘监听器();this.addKeyListener(jp);cd = new 菜单();this.setJMenuBar(cd);mb = new 面板();this.add(mb);exit = new 窗口监听器();this.addWindowListener(exit);this.repaint();class 菜单 extends JMenuBarJMenudan;/菜单JMenuItemxiang1; /菜单项菜单监听器cdjtq;菜单()dan = new JMenu(游戏); /菜单xiang1 = new JMenuItem(开局); /菜单项this.add(dan);dan.add(xiang1);cdjtq = new 菜单监听器();xiang1.addActionListener(cdjtq);class 菜单监听器 implements ActionListenerpublic void actionPerformed(ActionEvent e)/TODO:菜单事件处理if (e.getSource() = xiang1)class 窗口监听器 extends WindowAdapterpublic void windowClosing(WindowEvent e)ds1.xc.stop();System.exit(0);class 键盘监听器 implements KeyListener/TODO:键盘处理,可加入KeyEvent.VK_XXXpublic void keyPressed(KeyEvent e)switch (e.getKeyCode()case KeyEvent.VK_LEFT:/左boolean jiaSheZuoChuJie = false;for (int h = 0; h 20; h+)if (gesh0!=0) jiaSheZuoChuJie = true; else/假设左被挡住boolean jiaSheZuoDang = false;for (int l = 1; l 10; l+)for (int h = 0; h 20; h+) if (geshl!=0 & shiGeshl-1!=0) jiaSheZuoDang =true; if (jiaSheZuoChuJie = false & jiaSheZuoDang = false) /左移for (int l = 1; l 10; l+)for (int h = 0; h 20; h+)geshl-1 =geshl;geshl = 0;zl-; elsebreak;case KeyEvent.VK_RIGHT:/右boolean jiaSheYouChuJie = false;for (int h = 0; h =0; l-)for (int h = 0; h 20; h+)geshl+1 =geshl;geshl = 0;zl+; elsebreak;case KeyEvent.VK_UP:/上int ge2s = new int2010;for (int h = 0; h 20; h+)for (int l = 0; l 10; l+)int xl = zl+zh-h;int xh = zh-zl+l;if (geshl!=0 ) ge2sxhxl=geshl; ges = ge2s;break;case KeyEvent.VK_DOWN:/下break;repaint();public void keyReleased(KeyEvent e)public void keyTyped(KeyEvent e)class 面板 extends JPanel鼠标监听器sb= null;面板()sb = new 鼠标监听器();this.addMouseListener(sb);this.addMouseMotionListener(sb);class 鼠标监听器 extends MouseAdapter implements MouseMotionListenerpublic void mousePressed(MouseEvent e)public void mouseDragged(MouseEvent e)public void mouseMoved(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseClicked(MouseEvent e)/鼠标单击/mx my鼠标的位置int mx = e.getX();int my = e.getY();/鼠标左键BUTTON1、右键BUTTON3if (e.getButton() = MouseEvent.BUTTON1)/TODO:鼠标左键单击 repaint();public void paint(Graphics g)/g.setColor(Color.BLUE);/设定颜色:RED GREEN BLUE ORANGE WHITE GRAY BLACK PINK/g.drawRect(左,上,宽,高);/矩形/g.fillRect(左,上,宽,高);/实心矩形/g.drawOval(左,上,宽,高);/椭圆/g.fillOval(左,上,宽,高);/实心椭圆/Image tu=(new ImageIcon( 路径 ).getImage();/路径:图片-右键-属性-路径src/g.drawImage(tu,x,y,null);/TODO:绘图在此Image tu=(new ImageIcon( 俄罗斯图片/2/背景-1.png ).getImage();/路径:图片-右键-属性-路径src/g.drawImage(tu,0,0,null);for (int h = 0; h 20; h+)for (int l = 0; l 10; l+)if (geshl!=0) Image tuKuai=(new ImageIcon( 俄罗斯图片/2/+geshl+.png ).getImage();/路径:图片-右键-属性-路径src/g.drawImage(tuKuai,l*30+30,h*30+5,null); elsefor (int h = 0; h 20;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 25年班组三级安全培训考试试题【各地真题】
- 2025年精密过滤输液器合作协议书
- 2025年盘式干燥机合作协议书
- 2025年美发师创意造型考核试卷:美发师行业市场分析报告数据可视化试题
- 2025年帆船教练职业能力考核试卷(帆船教练实习反思撰写技巧要点)
- 2025-2030中国城市路灯柱行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国品牌宣传软件行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国反剽窃软件行业市场发展趋势与前景展望战略研究报告
- 2025-2030美容皂行业投资机会及风险投资运作模式研究报告
- 2025-2030工程起重机行业市场发展分析及竞争格局与投资战略研究报告
- 脱硫技术方案钠碱法脱硫
- 民兵思想政治教育教案
- (正式版)JTT 1218.5-2024 城市轨道交通运营设备维修与更新技术规范 第5部分:通信
- Python少儿编程全套教学课件
- MOOC 宇宙简史-南京大学 中国大学慕课答案
- 少先队辅导员技能大赛培训
- 2024年高等教育经济类自考-06270技术经济学笔试参考题库含答案
- 统编语文六年级下册期中测试卷(附答题卡和答案)
- 屈光性白内障手术发展
- 基于物联网的智能衣柜
- 用认知绘画(想象空间)课件-2023-2024学年高中美术人教版(2019)选择性必修1《绘画》
评论
0/150
提交评论