俄罗斯方块游戏开发实习报告.doc_第1页
俄罗斯方块游戏开发实习报告.doc_第2页
俄罗斯方块游戏开发实习报告.doc_第3页
俄罗斯方块游戏开发实习报告.doc_第4页
俄罗斯方块游戏开发实习报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

本科中期实习报告姓 名: 学 号: 专 业: 软件工程 院 系: 指导教师: 完成日期: 2013 年 12月 25 日西安财经学院教务处 制实习报告名称 俄罗斯方块小游戏开发实习报告实习时间2013年11月30日至 2013年12月21日 共 3 周实习地点实验楼 软件实验室指导教师李秀娟职称讲师二级学院、系信息学院软件工程系实习内容(后附实习报告)俄罗斯方块是个老幼皆宜的小游戏,它的实现由四块正方形的色块组成,然后存储在一个数组的元素中,计算机随机产生不同类型的方块,根据计算机时钟控制它以一定的速度下落,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,当出现满行的情况时将自动消除并计算分数。游戏最后由玩家的得分来评判水平的高低。在实习中我们通过屏幕的绘制、时间的控制、键盘的读取、数据的处理四个方面来实现俄罗斯方块的开发。指导教师评语及成绩 成绩: 签字(盖章): 年 月 日系意见签字(盖章): 年 月 日俄罗斯方块小游戏开发实习报告 俄罗斯方块是个老幼皆宜的小游戏,它的实现由四块正方形的色块组成,然后存储在一个数组的元素中,计算机随机产生不同类型的方块,根据计算机时钟控制它以一定的速度下落,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,当出现满行的情况时将自动消除并计算分数。游戏最后由玩家的得分来评判水平的高低。 在实习中我们通过屏幕的绘制、时间的控制、键盘的读取、数据的处理和消除主游戏区底部填满的行几个方面来实现俄罗斯方块的开发。一、实习目的中期实习是大学教育一个极为重要的实践性教学环节。我们通过开发一个俄罗斯方块游戏,深入理解、掌握、运用老师所传授知识,进一步深化专业知识,增强感性认识,培养我们综合运用所学的基础理论、基本技能和专业知识;锻炼我们独立分析和解决实际问题的能力。在实习中教会我们把理论和实践结合起来,提高实践动手能力,为我们毕业后走上工作岗位打下一定的基础。通过中期实习,我们可以了解软件行业基本情况,从整体项目设计和建模开始,了解游戏软件的需求、分析游戏软件的功能、进而构建游戏软件的构架;同时可以检验教学效果,为进一步提高教育教学质量,培养合格人才积累经验,并为自己能顺利与社会环境接轨做准备。二、实习内容(一)俄罗斯方块的基本规则1、游戏方块预览功能。在游戏过程中,当在游戏底板中出现一个游戏方块时,必须在游戏方块预览区域中出现下一个游戏方块。由于在此游戏中存在7种不同的游戏方块,所以在游戏方块预览区域中需要显示随机生成的游戏方块。2、游戏方块控制功能。通过各种条件的判断,实现对游戏方块的左移、右移、快速下移、自由下落、旋转功能,以及行满消除行的功能。(二)开发环境 在中期实习中,整个游戏是在linux环境下进行开发的。 嵌入式linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好、安全性好。(3) 俄罗斯方块的实现方法 在为期四天的实习中,我们在郭老师的带领下从零开始,运用所学过的知识和新的概念、方法,自己动手设计了俄罗斯方块小游戏,体验了一次小游戏开发的完整过程。游戏的设计分四个模块进行。1、屏幕的绘制 在屏幕的绘制中,首先应该修改屏幕的颜色,我们学习到修改代码为 33nm,其中n 为(30-37)修改的为背景色,n为(40-47)修改的为前景色。其次,要定义一个方块类,将生成的小方块放入其中。还没学习之前,我很疑惑那些小方块是怎样生成的,而郭老师巧妙的将前景色和背景色设置为同一种颜色,这样,一个字符显示在屏幕上就是一个小方块。 2、时间的控制控制方块的下落速度是设计中必须实现的功能,方块的下落速度也就是时间间隔,因此我们只需定义一个时间类,设置好时间间隔即可。其次,我们也需要控制屏幕的刷新速度,而刷新速度必须比方块下落时间间隔快。因此,如何在一个程序中体现两种不同的时间控制是此模块的一个难点。在郭老师的指导下,我们通过一个while语句很好的解决了这个问题。while(1)ftime(&ctm);if(ctm.time * 1000 + litm - ptm.time*1000-litm 1000)timer();ptm = ctm; 3、键盘的读取 我们需要对键盘中上、下、左、右键的读取实现对方块的变形、下落、右移和右移的功能。在此模块中,我们用到了第三方库中定义的方法。 4、数据的处理 在第四个模块中,我们主要处理三个数据。 (1)方块的下落,相应键盘:需要判断下键是否按下,并加快时钟周期。完成下落后,还原到原来的时钟周期。(2)形状的下落, 实现旋转:不同旋转角度显示不同方向的方块来完成的。所以程序要控制方块的旋转方向,只要控制显示哪副图就可以了。(3)消去主游戏区底部填满的行:查看主游戏区底部的每行是否填满的方式是,遍历主游戏区的二维数组,判断每行的所有方格的flag表示是否都为1,都为1时,表示图形都填满了,这时可以消除填满的行了。 三、实习总结中期实习是培养我们综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。回顾起中期实习,至今我仍感慨颇多,在这为期四天的日子里,可以说得是苦多于甜,但是我们的收获也是颇丰的。首先,我们不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。俄罗斯方块是经典游戏,也是每一个程序员必须会编写的程序之一,但是编程就像写文章,不同的人有不同的看法,实现的算法也就不尽相同。通过编写这个小游戏,我学会了将实际问题抽象成程序。比如对方快存储结构体的定义,方块编写前后的联系,以及最后极端情况的调试。在这个程序中,有几个函数是我初次使用,以前也不知道那些函数。C提供了丰富的库函数,熟练掌握那些函数,是对一个优秀程序员基本的要求,我们要通过大量的实践来熟悉这些函数。 其次,在整个开发的过程中,我明白学习来不得马虎,一个微小的疏忽可能导致致命的错误,虽然经历了很多次失败的,但在失败中我们成长。通过查阅资料让我知道了许多未探索的知识,团队的合作更让我们理解到人多力量大的道理,而老师的谆谆教导也让我受益匪浅。另外,这次中期实习使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。我们在实习过程中遇到很多问题,可以说得上是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在实习的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过中期实习之后,把以前所学过的知识重新温故。 最后,也是最重要的一点,在这次俄罗斯方块小游戏的设计中,我发觉了团队合作的重要性。当你为程序中一个小错误找不出而急的焦头烂额时,也许

温馨提示

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

评论

0/150

提交评论