2015贪吃蛇总结报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2015贪吃蛇总结报告

贪吃蛇设计综合实验总结报告 课程名称:程序设计实践 选题名称:贪吃蛇 小组长姓名: 方娟 200911211056 小组成员姓名:邹甜 200911211004 杜家萱 200911211066 任课老师:伊乾 报告递交时间:2009.6.9  一 系统功能说明 贪食蛇游戏是一个深受人们喜爱的游戏:一条蛇在密闭的围墙内,在围墙内出现食物,通过按键控制蛇向上下左右四个方向移动,蛇撞到食物,则食物被吃掉,蛇的身体增加一节。如果蛇在移动的过程中,撞到墙壁或身体的交叉(蛇头撞到自己的身体)游戏结束。现要求利用Turbo C2.0来实现该游戏。功能要求如下: 基本功能 提供一个图形模式下的界面。 开始游戏:空格键或回车键;退出游戏:Esc键。 支持用键盘的方向键来控制蛇的移动,蛇可以向上、下、左、右四个方向移动。 当蛇头碰到食物时,食物被吃掉,蛇的身体增长一节。 初始场景内随即出现1个食物,当食物被吃掉时,再随机出现一个食物。 要有记分机制,没吃掉一个食物,增加相应的分数。 蛇碰到墙壁或是自己身体的一部分则游戏结束。 二、高级功能 暂停功能:能随时通过按键来暂停游戏,再按一次则继续游戏。 速度调节功能:当分数达到某个值后,对蛇的移动速度进行一定的提升,但会有一个速度上限。 奖励机制:增加另一种的奖励食物,蛇吃到该种食物后蛇的身体减少一节(最短不能少于2节),但不增加分数。该种食物的颜色要区别与普通食物的颜色。奖励食物有时间限制,在一定时间内没有吃掉则会消失。 音效功能:在游戏开始、吃掉食物、撞墙、撞到自己时提供不同的音效。 二 程序结构 (1)程序结构说明 (2)重要数据说明 基本思路: 首先设计主界面,主界面是一个密封的围墙,并在屏幕最右面留一部分用来显示分数、计时等其他信息。围墙直接画一个矩形来表示,四面围成密闭的矩形来作为围墙。接着是初始化蛇与食物的位置并将他们用图形表示出来。然后进行一个循环,将蛇按当前的方向移动,并处理键盘的方向按键信息,调整蛇的移动方向。蛇头如果碰到食物,则食物消失,蛇身增长一节,更新分数,并在另外的地方又随机出现食物;如果碰到围墙或是自己的身体,则游戏结束,关闭图形系统。 游戏场景用一个二维坐标表示 移动方向利用定义16位制键值 如#define LEFT ox40b00 在函数中利用switch函数进行控制方向 利用结构体来表示蛇,定义两个二维数组分别表示蛇的身体的每一节,记录其横纵坐标 struct Snake /*定义蛇的结构体*/ { int x[N]; int y[N]; int node; int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/ }snake; 利用两个一维数组来控制蛇本身的横纵坐标 食物的表示是一个结构体 struct Food{ int x; int y; int die;/*判断是否出现食物*/ int bonus;/*判断是否要出现食物的变量*/} (3)函数清单  文件名 函数原型 函数功能 处理描述 draw.c void Init(void) 初始化图形模式 调用initgraph()切换到图形模式 void Draw(void) 初始化贪吃蛇界面 调用rectangle()画围墙 void Close(void) 关闭图形 调用closegraph()关闭图形 timer.c void interrupt(*oldtimer)(void) 指向原来的时钟中断处理过程入口中的中断处理函数指针(句柄) void interrupt newtimer(void) 新的时钟中断处理过程 调用(*oldtimer)()函数句柄,计时器自动加1 void SetTimer(void interrupt(*IntProc)(void)) 设置新的时钟中断处理过程 调用setvect()设置新的时钟中断处理过程 void KillTimer() 恢复原有的时钟中断处理过程 调用setvect()恢复原有的时钟中断处理过程 play.c void GamePlay(void) 游戏实现的过程 如何画出蛇 蛇如何移动 蛇的身体怎样增加 怎样吃食物 怎样控制奖励 void GameOver(void) 游戏结束后退出游戏 如果蛇死,则退出游戏 void PrScore(void) 打印出游戏得分 在游戏界面的适当位置打印出游戏得分 void IsBonus(void) 判断是否产生奖励 游戏的分数每增加100分,产生一个奖励 void Eatfood(void) 判断是否吃食物 判断蛇头的位置和

文档评论(0)

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

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

1亿VIP精品文档

相关文档