语言程序贪吃蛇课程设计报告.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文档。上传文档
查看更多
语言程序贪吃蛇课程设计报告

高级语言程序设计 课程设计报告 Experiment Designing reporter 课程名称 : 高级语言程序设计 英文名称 : C Program Experiment Designing 专 业 : 自动化 111 学 号 : XXX 姓 名 : XXX 指导教师 : XXX 日 期: 2012 年 6月 17日至 2011 年6 月 20 日 山东工商学院信电学院 一 : 课程设计内容 程序功能介绍 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。void DrawK(void) { setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH); for(i=200;i=500;i+=10) rectangle(i,200,i+10,209); } 然后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块………. 并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。 对于找到的模块如何进行改编呢?怎么才能知道某个数值或函数代表什么呢? 我们有两个方法: 1.)看名字,比如snakecolor(),很明显他的意思是蛇的颜色。2.)控制变量猜想,比如设置墙的时候for(i=200;i=500;i+=10); rectangle(i,300,i+10,309); 中的200,500,300,209 代表什么呢? 我们可以猜想:它很像是坐标上的(x,y)的格式,是不是呢?可可以先让其他数值不变,只让309改变,改变后发现上面的墙变粗了,由此可见这个数字控制的是一堵墙的最下面一行的坐标。 关于该程序的 相关分析思路答题模板 : 1 . 贪吃蛇程序流程图 如下 : 二.贪吃蛇程序的改编 : 经过小组成员的认真研究 我们对其进行了 如下改编 第一步 加墙 void DrawK(void) { /*setbkcolor(MAGENTA);*/ setcolor(5); // 可以改变颜色 setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ 横向上的墙: for(i=100;i=600;i+=10)// 本行代表行坐标上:100代表墙的初始位置,i=600代表墙的结尾。 { rectangle(i,60,i+10,69); //本行代表纵坐标上:60代表墙的最上面一行的位置,69代表墙最下面一行的位置。69-60=9,9代表墙块的厚度 } 纵向上的墙: for(i=100;i=400;i+=10)//本行代表纵坐标上:100代表墙的初始位置,i=400代表墙的结尾 { rectangle(100,i,109,i+10); //本行代表纵坐标上:100代表墙的最左边面一行的位置,69代表墙最右面一行的位置。69-60=9,9代表墙块的宽度 } 我们认为本模块最重要的是for语句控制的坐标代表的意思。只要明白了坐标的意思,就可以实现对游戏的改编。 第二步 就是进行对新加入的墙蛇是否撞上死亡 让蛇撞墙死 if(snake.x[0]190snake.x[0] 510snake.y[0]=200 snake.y[0]=215) /*其中,对x,y范围的控制,实际是对蛇撞击的死亡区域的限制。*/ { GameOver();/*本次游戏结束*/ snake.life=1; /*蛇死*/ } 相应的新添加的墙。 for(i=200;i=500;i+=10)/*画围墙*/ { rectangle(i,200,i+10,209); /*指定位置*/ 第三步食物的定点出现 if(food.yes==1)/*需要出现新食物*/ 这里说明一下:rand() 产生0-65535的数,在limit

文档评论(0)

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

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

1亿VIP精品文档

相关文档