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

下载本文档

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

文档简介

西安财经学院实践教学活动周实践报告姓 名: 学 号: 专 业: 院 系: 本校指导教师: 完成日期: 2013 年8 月 31 日西安财经学院实验实训教学管理中心 制实践报告名称小型游戏软件设计与开发实践时间2013年 07 月08 日至 2013 年07 月19 日 共 2 周实践地点西安财经学院指导教师职称讲师二级学院、系信息学院、软件工程系实践内容(后附实践报告)实践周关于小型游戏软件设计与开发其中主要有编译软件,系统兼容性,和需求分析,系统设计,通过这些软件设计我懂的了许多知识,也觉得软件设计在我们生活中运用的重要性,也一定好好掌握C语言这门语言。在今后我也会更努力的学习有关软件上的知识。 指导教师评语及成绩 签字(盖章): 年 月 日院系意见签字(盖章): 年 月 日小型游戏软件设计与开发随着社会的发展,人们的生活日益加快,越来越多加入了全球化的世界。人们不在拘泥于户外活动,户外游戏,而此时一款可以随时随地娱乐的游戏成了必需品。在手机电脑不断向人们袭来的社会,一款又好玩又娱乐性强的游戏横空出世。这就是我们每个人熟悉的再也熟悉不过的游戏-贪吃蛇,贪吃蛇这款游戏简单易行,操作方便,娱乐性强。该游戏给人们带来了追逐的快感,以及成功后的满足感,对于一直处于高压下的现代人是很好的放松工具。该游戏使用的开发语言为C语言,使用TC2.0作为开发工具。贪吃蛇游戏背景: 蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征。 而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候(好象是那个时候但是不确定)就有人发明的一种游戏,是现在贪吃蛇的前身。后来慢慢的发展就变成了今天的贪吃蛇了、现在贪吃蛇主要应用于手机游戏。本文运用软件工程思想、JAVA面向对象编程、类的封装、抽象类的使用(接口),游戏编码规范遵循MVC模式,循序渐进实现贪吃蛇的相关功能。所以为了适应时代需求,促进自己各方面的发展,使自己的暑假生活更加完善,我参加了这次小型游戏软件的设计与开发的实践。我的实践内容如下:1.1关于编译软件本程序采用Turbo C 2.0英文版本进行编译。Turbo C 2.0是美国Borland 公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件。Turbo C 2.0介绍:Turbo C2.0不仅是一个快捷、高效的编译程序,同时还有一个易学、易用的集成开发环境。使用Turbo C2.0无需独立地编辑、编译和连接程序,就能建立并运行C语言程序。因为这些功能都组合在Turbo 2.0的集成开发环境内,并且可以通过一个简单的主屏幕使用这些功能。基本配置要求:Turbo C 2.0可运行于IBM-PC系列微机,包括XT,AT及IBM 兼容机。此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。 Turbo C 2.0的主要文件的简单介绍:INSTALL.EXE 安装程序文件TC.EXE 集成编译TCINST.EXE 集成开发环境的配置设置程序。TCHELP.TCH 帮助文件THELP.COM 读取TCHELP.TCH的驻留程序README 关于Turbo C的信息文件TCCONFIG.EXE 配置文件转换程序MAKE.EXE项目管理工具TCC.EXE命令行编译TLINK.EXETurbo C系列连接器TLIB.EXETurbo C系列库管理工具C0?.OBJ 不同模式启动代码C?.LIB不同模式运行库GRAPHICS.LIB图形库EMU.LIB8087仿真库FP87.LIB 8087库*.H Turbo C头文件*.BGI 不同显示器图形驱动程序*.C Turbo C例行程序(源文件)其中:上面的?分别为:T Tiny(微型模式) 、S Small(小模式) 、C Compact(紧凑模式) 、M Medium(中型模式) 、L Large(大模式)H Huge(巨大模式1.2 C语言简介C语言发展沿革:C语言是国际上广泛流行且很有发展前途的计算机高级语言,不仅用来编写应用软件,也用来编写系统软件。在C语言诞生以前,操作系统及其他系统软件主要是用汇编语言实现的。由于汇编语言程序设计依赖于计算机硬件,其可读性和可移植性都很差,而一般的高级语言又难以实现对计算机硬件的直接操作,因此人们需要一种兼有汇编语言和高级语言特性的语言。C语言就是在这种环境下产生的。它最早是由Dennis Richie于1973年设计并实现。它的产生同UNIX系统之间具有非常密切的联系C语言是在UNIX系统上开发的。而无论UNIX系统本身还是其上运行的大部分程序,都是用C语言编写实现。同时,它同样适合于编写不同领域中的大多数程序。C语言已经成为全球程序员的公共语言,并且由此产生了当前两个主流的语言C+和Java它们都建立在C语言的语法和基本结构的基础上,而且现在世界上的许多软件都是在C语言及其衍生的各种语言的基础上开发而成。目前,在微机上广泛使用的C语言编译系统有Turbo C、Borland C+、Microsoft Visual C+等。虽然它们的基本部分都是相同的,但还是有一些差异。C语言特点:C语言是一种由ALGOL语言派生和发展起来通用流行的程序设计语言,许多大型软件均采用C语言编写,它同时具有汇编语言和高级语言的特性。具体地说,它具有如下特点:语言简洁,结构紧凑,使用方便、灵活。C语言一共只有32个关键字和9条控制语句,且源程序书写格式自由。运算符极其丰富,数据处理能力强。C语言一共有45种运算符,它把括号、赋值符号、强制类型转换符号等都作为运算符处理,使得C语言的运算符类型极为丰富,表达式类型多样化。灵活使用可以实现其他高级语言难以实现的运算和操作。 数据结构丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,用它们可以实现各种复杂的数据结构(如链表、树等)。特别是指针类型,使用起来灵活多变。具有结构化的控制语句,是一种模块化的程序设计语言。如ifelse语句、while语句、for语句等,可以在程序中使用所有的控制语句。另外,函数是C语言的基本单位,用函数作为程序模块的基本单位,以实现程序的模块化。可移植性好。C程序本身基本上可以不作任何修改,就能运行在各种不同型号的计算机和各种操作系统环境上。C语言提供了某些接近汇编语言的功能,能直接访问物理地址,直接对硬件操作,从而有利于编写系统软件。这些是C语言的一般特点。正是由于这些特点,使得它的应用非常广泛。C语言程序设计教材特点:根据C语言注重实践的特点,和实际的教学情况,该教材具有如下特点:首次真正地在(C语言)程序设计教材中突出讲授程序设计而不是程序,明确地给出了程序设计主要过程:将非计算机语言表述的算法,改写成带计算过程和计算条件的计算公式的过程。突出算法在计算学科中的灵魂作用。强调程序设计之前,应将解决问题的办法抽象成带有计算过程和计算条件的数学公式,即使枚举法,也应该用带计算过程和计算条件的数学公式来表示枚举过程和方法。将所有带计算过程和计算条件的数学公式,按基本程序模块分成了递推算法、迭代算法和尝试算法三类,使程序规范化、规律化,大大降低了程序设计难度。 所有需要设计的程序都给出了设计过程,都给出了带计算过程和计算条件的数学公式,以及和算式有关的重要的数据字典,使程序设计教材和软件工程并轨。1.3 关于系统兼容性本程序经过调试,可以在 2000 2003 XP 系统下编译运行。1.4 本章小结本章主要介绍了,关于选题和题目的背景;开发语言和开发工具做了简单的介绍;系统的兼容性。这样使读者对文章有个大概的了解。第二章 需求分析2.1 可行性分析游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。游戏这个名称一直就存在于每个人的日常生活中,如猜拳游戏,大地游戏,球类游戏,林林总总,不胜枚举,甚至于有些流行歌曲把人生也比喻为游戏,好比“一场游戏一场梦”。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的角色。2.2 设计目的综合运用在校期间所学的理论知识和技能,设计开发贪吃蛇游戏,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程实践能力。2.3 游戏需求给出1条小蛇和随机一个食物当小蛇吃到食物就加分。第三章 系统设计3.1.概要设计通过对贪吃蛇的需求分析,我们用C语言实现该程序概要如下:画面设计:主要内容有对边框食物蛇的设计,起用了与图形设计相关的函数,有INITGRAPH,SETCOLOR等.首先是画面的启动问题,紧接就是画面的绘制,而对食物及蛇则可放在游戏具体过程中,因为食物是随机的,而蛇是移动的.游戏过程:主要是对食物及蛇的设置.在这个环节程序有几个重要的算法,是程序能否成功地运行的关键.其主要有蛇是如何移动身体的,蛇怎样才能吃到食物,怎样判断蛇的死亡,以及如何中断游戏等等.游戏结束:在确定蛇死亡后,游戏结束,此时就必需退出游戏.注意此时界面的设计,及分数的输出和图形的结束.添加的功能:起先的程序是很简单的,无任何的修饰,而且在有些地方不便于用户的操作.于是在相应的地方添加了某些功能.例如在游戏的开头,添加了”WELCOME TO GAME”的语句,并添加”PRESS ANY KEY TO GAME”以提示用户.在游戏的中途,用户可以按ESC键以中断游戏,也可以选择继续游戏.运用函数如下表:表31 游戏模块功能函数 函数名及函数类型 函数功能主函数 Void Main() 调用辅函数使用程序图形驱动 Void Init() 启动画面开始画图开始画图 Void Drawk() 画出游戏图框欢迎界面 Void Pause() 欢迎字幕续表31 游戏模块功能游戏结束 Void GameOver() 游戏结束的调用开始游戏 VoidPlay() 游戏开始的标志成绩输出 Void Prscore() 游戏进行程度的标志结束界面 Void Close() 结束所有的操作音乐 Void Music() 输出音乐3.2.详细设计程序设计分析: 开始欢迎界面音乐游戏界面结束游戏退出游戏图3-1 主程序图这是一个简单的游戏,所以循环和分支之类的函数在大的面上运用较少,主要体现在计算上,尤其是坐标上的计算较突出.简单易懂,一目了然.开始游戏键入B开始游戏初步绘制食物和蛇根据玩家不同操作来具体操作游戏结束3-2 游戏主图在这一过程中包含着这个程序的主要算法:食物是如何出现的;蛇是如何移动了;蛇的每个环节如何跟随蛇头移动;怎样才算游戏失败等等。食物的出现:if(food.yes=1)food.x=rand()%400+60;food.y=rand()%350+60;while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/food.x+;while(food.y%10!=0)food.y+;food.yes=0;/*画面上有了食物*/if(food.yes=0)/*画面上有了食物就要显示*/setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);食物是游戏的关键之一,只有设定好才可以使游戏成功.而食物必须在整格内是主要的内容,接着就是绘制图。蛇的移动:for(i=snake.node-1;i0;i-)/*蛇的每个环节的移动*/snake.xi=snake.xi-1;snake.yi=snake.yi-1;/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction)case 1:snake.x0+=10;break;case 2: snake.x0-=10;break;case 3: snake.y0-=10;break;case 4: snake.y0+=10;break;蛇尾紧跟随着蛇头的改变,蛇头则依据输入的情况做不相应的判断.补充: while(1)while(!kbhit() /*在没有按键的情况下,蛇自己移动身体*/游戏失败蛇撞到自己for(i=3;isnake.node;i+)/*从蛇的第四节开始判断是否撞道自己了,因为蛇头为两节,第三节不可能拐过来*/if(snake.xi=snake.x0&snake.yi=snake.y0) GameOver();/*显示失败*/snake.life=1;break;判断坐标上其XY轴上的值是否相等即可,对于二维图形这是很重要的运算,其运算也非常常见.蛇撞到墙if(snake.x0595|snake.y0455)/*蛇是否撞到墙壁*/GameOver();/*本次游戏结束*/snake.life=1;/*蛇死*/if(snake.life=1) /*以上两种判断以后,如果蛇死就跳出内循环,从新开始*/ break;if(snake.x0=food.x&snake.y0=food.y)/*吃到食物以后*/setcolor(0);/*把画面上的食物东西去掉*/rectangle(food.x,food.y,food.x+10,food.y-10);snake.xsnake.node=-20;snake.ysnake.node=-20;/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/snake.node+;/*蛇的身体长一节*/food.yes=1;/*画面上需要出现新的食物*/score+=10;PrScore();/*输出新得分*/if(snake.x0=food.x&snake.y0=food.y)/*吃到食物以后*/setcolor(0);/*把画面上的食物东西去掉*/rectangle(food.x,food.y,food.x+10,food.y-10);snake.xsnake.node=-20;snake.ysnake.node=-20;/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/snake.node+;/*蛇的身体长一节*/food.yes=1;/*画面上需要出现新的食物*/score+=10;PrScore();/*输出新得分*/补充1:在这下面是我为了使游戏更具有趣味性,所设计的界面:void color()int i,t,x=200,y=70;int gd=DETECT,gm=0;initgraph(&gd,&gm,e:tc);setbkcolor(11);setcolor(12);for(i=0;i=5;i+) x=x-15;y=y+15;settextstyle(1,0,i);cleardevice();outtextxy(x,y,Wellcome to Game!);outtextxy(150,90,press any key to continue!);getch();closegraph(); 13void pause() char c;printf(ntttt please enter B to begin Game!);c=getch();if(c=b|c=B)GamePlay();elseprintf(ntttt select error!please enter B to Game!);c=getch();if(c=b|c=B)GamePlay(); sleep(1);上面这段程序包含了欢迎界面及游戏开始时的按键设计,突出了该游戏的人性化,方便用户的使用补充2:为了方便用户可以随时退出游戏,也可以暂停游戏,以便随时返回游戏. void Quit() char c;printf(nttt sure to exit enter Y;Otherwise enter any other key!);c=getch();if(c=y|c=Y)exit(0);3.3 游戏过程框图 每种情况都是随时都可以碰到的,所以有的时候须不断调用各种判断函数。开始游戏蛇身自己移动有按键?蛇继续自己移动是ESC?确定要退出游戏?是光标?其它无效退出游戏根据光标移动蛇撞墙/接尾?游戏结束吃到食物?增加分数NYYYNNYYNYN图3-3. 游戏具体操作图绘制边框在该程序里,并不是单纯为了美观,更是为了绘制游戏中的“墙”,该墙在游戏中起着很重要的位置,是判断游戏失败与否的一个关键。当“蛇”遇到“墙”游戏失败,就结束游戏。开始画图设置背景颜色设置边框颜色设置直线型定义i=50i=600?绘制上下边框重新定义i=40i=450结束画图绘制左右边框YNYN图3-4 绘制边框该游戏中有三个物体是必须绘制的,上图介绍了边框绘制,下面给大家展示一下食物的绘制:开始定义文本的背景颜色定义背景的显示框定义文本的颜色定义文本的坐标定义分数输出格式输出最新分数返回图3-5. 食物的绘制不论是什么样的游戏,有一个大家都会关心的问题,那就是分数,分数决定胜负的关键,也是用户衡量自己能力的一个平台,这个游戏也不例外,在这里分数以10分一算,没吃到一次食物,分数就增加10分,一下是关分数输出一个设计: 开始清屏输出成绩定义文本颜色定义文本格式定义输出文本“GAME OVER”及其坐标任意键 图3-6. 分数输出在游戏失败后,有一个输出界面,虽然游戏不占重要的地位,但是也能体现一个游戏与其他程序设计的不同地方。启动随机数发生器食物存在?出现新食物食物在整格内?调整食物于整格内显示食物NNY图3-7. 游戏结束3.4本章小结本

温馨提示

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

最新文档

评论

0/150

提交评论