贪吃蛇C语言课程的设计的报告.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
贪吃蛇C语言课程的设计的报告

贪吃蛇游戏设计 姓名: 张力 学号: 完成日期: 月 日 一、设计目的 贪吃蛇游戏程序功能的实现主要是建立在二维数组和图形界面的应用上,通过编写游戏程序能够熟悉掌握相关数组和图形函数的运用,提高编程水平,增加编程的兴趣 二、总体设计 主函数 ↓ 图形驱动Init 画界面DrawK 游戏具体过程GamePlay 图形结束Close ↓ 游戏结束GameOver 输出成绩PrScore 三、详细设计(项目成员及分工、模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等) ①主函数main(): 定义使用的常数,全局变量及函数原型说明,并调用Init()函数初始化图形系统;然后调用DrawK()函数画界面,调用GamePlay()函数实现游戏的具体过程,游戏结束后调用Close()函数关闭图形系统结束程序。 ②画界面函数DrawK(): 主界面是一个密封的围墙,用两个循环语句分别在水平方向和垂直方向输出连续的宽度和高度均为10个单位的矩形小方块,设置成淡青色,背景颜色为黑色。 ③游戏具体过程函数GamePlay(): 算法过程: 设置初始值。为防止食物出现在一个位置上,要设置随机数发生器,真正产生随机数。初始时,蛇只有蛇头,设定一个开始方向; 循环执行,直到按Esc键退出; 没有按键的情况下,循环执行。 如果没有食物,随机出现食物;食物的随机出现要确保它的位置在10的倍数位置上,因为蛇的坐标都是以10为模的;如果有食物,则显示食物,蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到了墙或自己吃到了自己,如果出现这两种情况之一,则蛇死;调用游戏结束函数GamePlay(),结束本次游戏; 判断蛇吃到食物的方法是蛇头的坐标和食物的坐标都相等;如果蛇吃到了食物,蛇身体长一节,数组元素增加一个,身体节数、分数都进行相应的改变。 在新位置画出蛇。采用的方法是每次移动的时候从最后一节开始到倒数第二节,将前一节的坐标赋值给后一节的坐标,移动后只要把最后一节用背景色去除即可。 D.如果有按键,则识别按键值。如果按键为Esc键则结束游戏,程序运行结束;如果所按键为方向键,则根据该键改变蛇方向的变量direction的值,相反方向键无效。 ④游戏结束函数GameOver(): 游戏结束,清除屏幕,调用输出分数函数PrScore(),并显示游戏结束。 ⑤输出分数函数PrScore(): 在指定位置利用sprintf()将整数转换为字符串,用outtextxy()输出,、bar()函数的应用是为了覆盖原来的值。 ⑥图形结束函数Close(): 在显示游戏结束信息的画面时,按任意键关闭图形系统,程序结束。 调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题和采取的解决措施等; 将源文件在TC3.0环境下调试运行,前期发现错误为游戏界面静止。 源程序清单及执行结果: #includestdio.h #includegraphics.h #includestdlib.h #includedos.h #includeconio.h #includebios.h #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define Esc 0x011b #define N 200 /*定义全局变量*/ int i,key; int score=0;/*得分*/ int gamespeed=50000;/*游戏速度可以自己调整*/ struct Food { int x;/*定义食物的横坐标*/ int y;/*定义食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/ }food;/*食物的结构体*/ struct snake { int x[N]; int y[N]; int node;/*蛇的节数*/ int direction;/*蛇的移动方向*/ int life;/*蛇的生命,0活着,1死亡*/ }snake; void Init(void);/*图形驱动*/ void Close(void);/*图形结束*/ void DrawK(void);/*开始画面*/ void GameOver(void);/*结束游戏*/ void GamePlay(void);/*玩游戏的具体过程*/ void PrScore(

文档评论(0)

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

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

1亿VIP精品文档

相关文档