贪食蛇计算机实习报告.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机实习报告 姓名: 班级: 学号: 小班序号: 指导老师:夏海轮 题目:贪吃蛇游戏 邮箱: 贪吃蛇游戏实验报告 一.功能说明 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)/2][hy]==2)//不能反向地走,忽略,继续自动走 { Automatic( );//使用自动移动的函数 } else{ coordinate[(hx-2)/2][hy]=1;//留下移动方向的标记,让身体能够跟上蛇头的轨迹 hy=hy-1;//蛇头高度减一 //判断有没有撞墙 if(coordinate[(hx-2)/2][hy]0)// 撞到了自身或者栅栏 { textout(handle,35,17,head,1, Game Over!);//输出 break; } else if(coordinate[(hx-2)/2][hy]0)//吃到水果 { marks=marks+600/speed;//加分 fs=0;//标志重置 tailFlag = false;/***/ coordinate[(hx-2)/2][hy]=1;//留下标记 textout(handle,hx,hy,head,1, ■);//输出 fruiteat(handle);//使用吃到水果后的函数 }else if(coordinate[(hx-2)/2][hy]==0)//走到空地上 { coordinate[(hx-2)/2][hy]=1;//留下标记 textout(handle,hx,hy,head,1, ■);//输出 } } } 实现的是按键之后的变化。每一个上,下,左,右键都对应着遇上空地,遇上蛇身与栅栏,遇上果子三种情况,以上代码段仅列举了按上键之后的所有情况。若遇上空地,则使该坐标显示值为1,使得以后的身子也能向上行走;若遇上蛇身或者栅栏则游戏结束;若遇上果子则吃掉果子,并使用吃了果子之后的函数。 算法2:if (tailFlag) { //尾部的处理 //以下只对向上走的部分做详细解释,向其他三个方向走的部分类似 if (coordinate[(tx-2)/2][ty]==1)//向上走 {coordinate[(tx-2)/2][ty]=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++;

文档评论(0)

2017meng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档