贪食蛇计算机实习报告.doc_第1页
贪食蛇计算机实习报告.doc_第2页
贪食蛇计算机实习报告.doc_第3页
贪食蛇计算机实习报告.doc_第4页
贪食蛇计算机实习报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

2011年计算机实习报告 计算机实习报告 姓名: 班级: 学号: 小班序号:指导老师:夏海轮题目:贪吃蛇游戏邮箱:贪吃蛇游戏实验报告一功能说明1.1总体功能说明贪吃蛇游戏主要实现的功能是蛇的移动,转向。产生水果,吃水果增加蛇身的长度。撞到自己,墙壁,障碍死亡,另外还有暂停,音乐和排除错误按键干扰等功能。1.2用户界面 一、游戏的主界面: 进入游戏首先进入游戏的主界面。上面有游戏说明,然后会有1,2,3三个选项。分别用于选择游戏的难度。按其他键默认选择容易级别。二、游戏界面: 游戏界面下方会及时显示游戏难度、得分和吃水果数。三、死亡界面:此界面给出重新玩游戏或者结束游戏的选择。1.3使用方法控制游戏的按键为:上: 下: 左: 右:按空格键暂停,然后按空格键开始。在游戏过程中按其他键无效。游戏有三种等级可以选。易,中,难。区别是蛇的移动速度的不同。二程序设计说明2.1 总体设计框架选择难度易中难游戏开始界面 游戏界面选择重新开始死亡游戏结束,退出主程序蛇的移动与增长水果的产生蛇身的增长蛇身的移动蛇的死亡判断水果位置是否正确正确不正确碰壁,撞身重新产生直接产生水果2.2 关键算法描述算法:算法输入参数和输出参数,算法功能,使用什么存储结构,在主程序中起什么作用,可以使用框图或伪代码表示。算法1:if(ch1=224)/按了方向键 int ch2=_getch();/从缓冲区再获得一个字符if (ch2=72)/向上if(coordinate(hx-2)/2hy=2)/不能反向地走,忽略,继续自动走automatic( );/使用自动移动的函数elsecoordinate(hx-2)/2hy=1;/留下移动方向的标记,让身体能够跟上蛇头的轨迹hy=hy-1;/蛇头高度减一/判断有没有撞墙if(coordinate(hx-2)/2hy0)/ 撞到了自身或者栅栏textout(handle,35,17,head,1, game over!);/输出break;else if(coordinate(hx-2)/2hy0)/吃到水果marks=marks+600/speed;/加分fs=0;/标志重置tailflag = false;/*/coordinate(hx-2)/2hy=1;/留下标记textout(handle,hx,hy,head,1, );/输出fruiteat(handle);/使用吃到水果后的函数else if(coordinate(hx-2)/2hy=0)/走到空地上coordinate(hx-2)/2hy=1;/留下标记textout(handle,hx,hy,head,1, );/输出实现的是按键之后的变化。每一个上,下,左,右键都对应着遇上空地,遇上蛇身与栅栏,遇上果子三种情况,以上代码段仅列举了按上键之后的所有情况。若遇上空地,则使该坐标显示值为1,使得以后的身子也能向上行走;若遇上蛇身或者栅栏则游戏结束;若遇上果子则吃掉果子,并使用吃了果子之后的函数。算法2:if (tailflag) /尾部的处理/以下只对向上走的部分做详细解释,向其他三个方向走的部分类似if (coordinate(tx-2)/2ty=1)/向上走coordinate(tx-2)/2ty=0;/将方格的标志置零,方便下次调用textout(handle,tx,ty,tail,1, );/将方格变回空白ty=ty-1;/尾部向上移动 实现的是尾部的处理。前文提到每走一步就会增加一节身体,同时运行这段代码剪掉尾部,而如果满足吃了果子就不会运行这段代码,此时则蛇身增长一块。算法3:void fruiteat(handle handle)while(0)if(fs=0)/水果已被吃while(!fs)/一直循环到水果已放置fx=rand()%36+1;/让水果随机出现fy=rand()%36+1;eatnumber+;/吃水果数目加一if(coordinate(fx)fy=0) & fx!=2 & fx!=35 & fy!=2 & fy!=35)/如果可以放置水果 coordinate(fx)fy=-1; textout(handle,2*fx+2,fy,fruit,1, ); fs=1; break;else break; :此函数实现的是随机出现果子的处理。最初果子数设为-1,每出现一个果子则+1,以此来计算吃了果子的数量。同时在出现果子时会判断出现地点正确性。2.3 程序设计的难点和关键点此程序的难点和关键点:一、 如何使用一种算法同时实现对面对空地,蛇身,栅栏,果子的判断。二、如何记录坐标的状态指引蛇身跟着舌头运动。三,如何是使蛇在前进的时候,按与运动方向相反的键时,不会使蛇头返回移动。2.4 调试的方法在程序运行过程中会出现死循环,不明的错误。这时候就进行程序的调试。设置断点,跟入,一步步看程序的运行过程,检查变量的值,最后找出错误所在。比如在做转弯的时候,每转一次弯蛇身就会减少一截,这是因为算法之间的衔接不好。2.5 程序性能评价 从程序本身上看,优点是我实现了贪吃蛇的基本功能,并且考虑到了可能按错键之类的情况都进行了处理。作为一个基础游戏是达到了目标。同时程序有点冗长,代码有些重复的地方。 从程序的效果上,我的画面较为简洁,并实现了应有的功能。但是显示画面的绚丽程度不足。三心得体会这次小学期c+实习我费了很大的功夫。因为上学期c+学习都是基于理论和考试,并没有多少针对实际的练习,所以当我决定做贪吃蛇时,设计算法是一个非常艰难的过程。并且由于知识遗忘的比较多,所以最开始上手时程序出现了很多错误。通过请教同学和老师,最终把那些错误都改正了,使得程序能够继续编下去。这次的编程经历让我收获颇丰,不仅锻炼

温馨提示

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

评论

0/150

提交评论