欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新c语言课程设计-贪吃蛇设计.doc

    • 资源ID:34716376       资源大小:1.30MB        全文页数:76页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新c语言课程设计-贪吃蛇设计.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datec语言课程设计-贪吃蛇设计c语言课程设计-贪吃蛇设计 C语言程序设计课程设计题 目: 贪吃蛇游戏设计 学 院: 信息学院 专 业: 网络工程 姓 名: 李益双 学 号: 1101010121 班 级: 信息A1111班 指导教师: 罗成 职 称: 讲师 完成日期: 2012年6月 目 录1、 前言32、 摘要.43、 项目背景.54、 需求分析.65、 概要设计.76、 详细设计与测试.8601 定义蛇身的数据结构.8602算法设计与程序流程图.8 602.1贪吃蛇算法设计.8 602.2程序流程图.9603光标移动的设计与实现.10 603.1显示水平围墙的实现.10 603.2显示分数的实现.11 603.3接受玩家按键信息的实现.11 603.4游戏结束时显示信息的实现.11604 贪吃蛇游戏主干的设计.12 604.1游戏的初始化与加载的实现.12 604.2食物随机产生的实现13 604.3蛇身的增长设计.14 604.4蛇身的显示与移动的设计实现.15604.5蛇的头部与物体碰撞的而设计实现.167、 编码.17 8、 结论.189、 参考文献.1910、 致谢.19前 言 C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的。目前,C语言编译器普遍存在于各种不同的操作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言的设计影响了许多后来的编程语言,例如C+、Objective-C、Java、C#等。1980年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局(American National Standard Institution)为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。1980年代至今的有关程式开发工具,一般都支持符合ANSI C的语法。对于一个初学者,Microsoft Visual C+是一个比较好的软件。界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC+6.0、VS2005VS2008VS2010等,分为企业版和学生版等。对于初学者VC+6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。 在unix/linux操作系统上,学习c语言一般使用vim/emacs来编辑源文件,使用gcc来编译源文件,使用make程序来管理编译过程。 C+学习过程中,涉及到很多的基本知识点,需要以练习的形式逐步深入,以达到融会贯通的目的。学习C+是一项交互式练习,不实际编写程序就无法学会C+,因此,要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始。选一些好的实例,这些实例经过反复的挑选,既有利于我们掌握有关知识,又不识趣味性。不断地写代码,写有意义的代码。这其实也是入门任何其他编程语言的必由之路。在编程的过程中,重点训练我的编程的逻辑思路和算法以及编程、调试的基本技术。因此,在作课程设计时,以任务驱动为前提,从提出问题开始,行分析和算法设计,最后再归纳总结,以加强学习的针对性和应用性。万丈高楼平地起,能够编写复杂的游戏都是在编写过简单的游戏程序基础上演变过来的能力。然而像贪吃蛇这样的小游戏程序,就自然成了游戏设计者的入门首选。因此其界面简单,操作、玩法一目了然,所以编写起来就不会很困难,而且需要考虑的问题也不是很多,就是蛇的显示、移动、碰撞3个游戏的主块,程序就自然编写出来了,不会一开始就把游戏设计初学者拒之门外。编成之后成就感就油然而生,并使之对游戏设计产生强烈的兴趣。成为向游戏设计之路成功迈进的第一步,同时对于VC+的应用水平也会上升,用起来会更加熟练、得心应手。从易到难这是一个准则,总之,贪吃蛇小游戏的研究会对增长程序阅读能力、编写程序能力等起到了意想不到的作用。摘 要 本文首先对小游戏的发展前景进行了展望,并对其研究现状与研究目标进行了介绍。然后对编写程序用的工具软件 VC+进行了介绍。接着进入主题,对贪吃蛇这个游戏进行了介绍然后又对游戏总体设计与分析。最后详细地介绍了游戏中各个细节的具体实现,并进行了细致的分析。行云流水般地将在游戏编写过程中遇到的问题以及相应的解决方法表述的清清楚楚。在实践中我获得到了许多宝贵的知识和编程的经验!关键字:贪吃蛇,VC+,小游戏。ABSTRACT In this paper, At the we saw the future of the development of little game.and then we introduced the situation and target of game research . afterwards, we peovided the programming tool which is called VC+ made by Microsoft . Next lets get down to business . in the first place . we introduced the gamegreedy snake .in the second place ,we designed and analyzed the overall game .At last , we vividly provided the particular realization of game details, and analyzed those detail meticulous. In the process of game programming. I came up against lots of trouble, but I didnt give it up, by the contrary. I overcame them one by one ,and at last I met with success ,I have got many precious knowledge and programming experience in the practice.Key words :Greedy snake, VC+, little game. 项目背景贪吃蛇简介蛇传说中的圣灵之物,仰头为神,俯首为魔。蛇是月亮国膜拜的神,月亮国的子民们都认为蛇是万能的主宰派来保护他们的守护者。蛇在这个岛屿就像空气一样自然的出现在各个角落,有些还成为居民的宠物,陪伴孩子长达,和年轻人一起去探险,守护者散步的老人。在善良的女神女娲神保佑下,人们的生活安宁平静。为了答谢女娲神的庇佑,每年月亮果的国民们都会举办一个守护蛇大赛,大人家都会拿出自己最强、最炫、最快、最稀有的蛇来参加比赛,获得第一名的人将得到国王的特别嘉奖。所以国民一生都在培养更有威力、更长、更壮的蛇。“贪吃蛇”是在一个产生于1970年代中后期的计算机游戏。也叫贪吃蛇。该游戏在1990年代由于一些手机将其引入而一时间再度流行起来。在游戏中,玩家操作一条细长的蛇爬行与一个带边界的平面上,一路拾起触碰到之事或其它类似的物件,并要避免触碰到自身或者包围者游戏区的“墙”。每次贪吃蛇吃掉一件食物,它的身体变增长一些,这让游戏的难度渐渐变大。操控贪吃蛇时,玩家操控贪吃蛇的头部的朝向(上、下、左、右)操控贪吃蛇的进行方向 贪吃蛇的身体将跟随其头部行进。另外,玩家不可在游戏中途停止贪吃蛇的行进。随着贪吃蛇的成功移植到手机系统,贪吃蛇的操作按键要求与手机按键完美匹配,使贪吃蛇游戏风靡起来。 需求分析 现在小游戏很是流行在手机以及互联网上都是很火热的,这引起了我的兴趣。查看了而几个小游戏网站,其实也没有什么,只不过是写以FLASH为主开发的Flash小游戏,确实没有什么非同凡响的地方。但你仔细思考想一下,就不难发现,这些东西还真有一定的市场,只是现在还默默地没有被人们所关注。首先,不断扩大的网络爱好者和电脑应用者队伍,带来了很多“新手”,这些新手还会像以前我们刚开始接触是一样,对一些相对简单,操作也方便、娱乐性强东西很感兴趣。源源不断的加入者,组成了“小游戏”玩家的新主力军。其次,“小游戏”很方便下载,而且现在的数码小产品被越来越多的青年所青睐,拥有许多超强功能来支持这些小游戏。再次,随着电视上网络上进程的推进,网络走进千家万户的时代为期不远。因为电视分辨率与内存大小的限制,以及遥控器操作要求简单,这种小游戏将会有一个巨大而潜在的市场。今后小游戏的发展趋势:1,体积小,小游戏一般都占硬盘空间相当小,方便下载传播;2,内容好,体积小并不代表没有内容,相反小游戏的内容还是比较丰富的;3,耐玩,正是因为小游戏占空间不大,它也是在电脑上占据比较长的游戏了;4,娱乐性高,小游戏玩起来还是蛮有趣的,拥有一定的娱乐性;5,无年龄层次,不分老少、男女小游戏面向的晚间范围广。概要设计 贪吃蛇游戏的额基本规则:通过键盘上的1、2、3、4键来控制蛇的运行方向,当蛇将食物吃到了后身体长度自动增加,当蛇撞到墙或吃到自身则蛇死,此时将退出贪吃蛇游戏;当蛇向左运行时,按向右键将不会改变蛇的运行方向,蛇将继续前进;同理其他方向一样。 在编写贪吃蛇游戏时有一下几个技术要点。第一、 如何实现蛇在吃到食物后食物消失,这里用到的方法是采用背景色在出现事物的地方将食物重画,这样食物就消失不见了。第二、 、如何实现蛇的移动且在移动过程中不留下痕迹,实现蛇的移动也是贪吃蛇游戏最核心的技术,主要方法是将蛇头后面的每一节逐次移动到前一节的位置,然后按蛇的运行方向不同对蛇头的位置作出相应调整,蛇每向前运行一步,相应的将其为不宜结用背景色重画,及去掉其尾部。第三、 当蛇向上运行时,从键盘中输入向下键,此时蛇的运行方向不变,其他几个方向以此类推,之力我是采用if.eles语句来实现该功能。第四、 食物出现的位置这里采用随机产生,但这种随机产生也是有一定限制条件的即食物出现位置的横纵坐标必须能被10整除,只有这样才能保证蛇能够吃到食物。 详细设计与测试601定义蛇身的数据结构 对于蛇身在某一瞬间的位置标识,我们采用一个一维的数组来标识出来,即用动态增长的数组来存储每一节蛇身的位置(包括蛇头和蛇尾)。 也就是说,用存储单位空间存储当前蛇身某部位的位置来对整个蛇身的位置进行标识,因此每个存储空间的内容就是一个点的坐标值(row,col),而蛇身以从左到右的方式进行编号,最左边是蛇的尾部,最右边是蛇的额头不。如表6-1为三节蛇的数据结构。表6-1三节蛇的数据结构(snake0.row,snake0.col)(snake1.row,snake1.col)(snake2.row,snake2.col)snake0.row和snake0.col是第0号蛇身也就是蛇尾的横坐标row和纵坐标col:以此类推,snake2.row和snake2.col则是第二号蛇身也就是蛇头的横坐标row和纵坐标col。602 算法设计与程序流程图602.1 贪吃蛇算法设计 Snake game :1:初始化游戏,游戏界面的绘制、游戏速度的设置、食物产生2:while 玩家不按退出键3: if 玩家按下某方向键4: 蛇身按照玩家按下方向移动5: eles蛇身按照默认方向(右)移动6: end if7: if 蛇头碰到墙壁8: 游戏结束9; end if10: if 蛇头碰到自身11: 游戏结束12: end if13: if 蛇碰到食物14: 蛇身增长、分数增加、产生新食物 15; end if 16: end whlile17: 游戏结束=602.2程序流程图 602.2程序流程图603光标移动的设计与实现 在游戏过程中,对于光标的移动相当重要。首先,食物的产生是随机产生的,可能出现在游戏界面的任何一个地方,因此生成随机坐标后,就要将光标移动到该坐标,然后进行显示食物操作。其次,游戏界面的显示也需要移动光标。譬如,纵向的围栏的显示。再次,就是蛇身的移动了,蛇尾部要不断清空,这样蛇就动起来了。其中X为纵坐标,Y为横坐标,(X,Y)对应于屏幕上的像素点。COORD这个数据结构、SetConsoleCurorPosition()、GetStdHandle()这2个函数都是位置,GetStdHandle()得到标准输入输出的句柄。Gotoxy()这个函数是布尔型的,返回真或假。 下面将光标移动应用到贪吃蛇游戏中603.1显示水平围墙的实现 水平围墙就是在游戏区域中,限制蛇行动的上下界,即活动的对打边界。这里用一系列“=”连续显示,直到设定的最大活动范围。 水平围墙如图603.1所示图603.1水平围墙603.2显示分数的实现 对于玩家的得分,是在游戏当中,玩家控制贪吃蛇每当吞掉一个食物,相应的分数就会增加一分。游戏结束时,分数会清零,再下一盘游戏中从0分开始计数玩家的分数显示如图603.2所示603.2分数显示图603.3接受玩家按键信息的实现 为了接受来自键盘的信息,之力用到了conio.h这个头文件。通过一个布尔函数kbhit()的真假来判断是否有按键被敲击,如果没有,游戏正常运行;否则通getch()得到那个char变量的按键信息,然后修改蛇的运动方向。603.4游戏结束时显示信息的实现 当游戏介绍时,屏幕上要显示“Game over”的字样,还有“another game(y/n)?”的字样来让玩家选择继续游戏还是退出游戏。这里是通过使用gotoxy()函数,是上述的字样在想要显示的位置出现的。游戏结束的而显示信息如图603.4所示图603.4游戏结束显示604贪吃蛇游戏主干的设计 604.1游戏的初始化与加载的实现 游戏开始的时候,初始化蛇的长度为4节,行进方向为右。并定义2维数组screengridrowcol,该数组的作用是产生食物用。蛇开始移动的坐标是哦(2,2)。然后绘制围墙横的围墙用一排“=”显示,纵的围墙用一列“|”显示,这样游戏的框架就出来了,初始化游戏分数,并显示游戏的一些帮助,如按键设置等。 游戏初始化,包括蛇的初始长度,蛇初始行进的方向,游戏区域的显示。 游戏加载完成后,效果如图604.1所示 图604.1贪吃蛇的初始化604.2食物随机产生的实现 对于前面提到过的一个二维数组screengridrowcol这里要用到。用rand()函数生成2个随机生成的整数作为食物的横坐标和纵坐标,并判断食物是否出去围墙,如果在游戏区域外面,则对随机生成的横纵坐标进行修改。然后移动光标到此处坐标进行输入“*”操作。(用“*”代表食物)这里的c和r会在判断蛇头是否碰到食物用到。这里要应用到time.h这个头文件,用于产生随机数。 食物随机产生,如图602.2所示 图604.2随机食物产生604.3蛇身的增长设计 对于蛇身增长的设计要考虑到蛇头的运行方向。如果蛇头向右行进,新增加的蛇身横坐标不变,纵坐标增加1;如果蛇头向左行进,新增加的蛇身横坐标不变,纵坐标减1;如果蛇头向上行进,新增加的蛇身纵坐标不变横坐标减1;如果蛇头向下行进,新增加的蛇身纵坐标不变横坐标加1. 604.4蛇身的显示与移动的设计实现 对于蛇身的显示属于本程序设计的难点之一,因为蛇身是一个运动的物体,每个时刻的某一节所在的位置是变化的。就像一个动画过程,需要每隔一个固定的时间,对蛇进行显示一次,并将蛇尾部的一节消掉,使蛇头向前增进一节。这是一个动态的过程,当然设置的固定显示蛇身时间是能让人眼来得及反应的时间,也就是不能太快,否则在人看到就是频闪的一串了。其中addsegment()这个函数是用来为蛇头的前移赋值的。604.5蛇的头部与物体的碰撞的设计实现对于蛇的头部与物体碰撞的检测同样属于本程序设计的难点。1、首先来关注蛇的额头不与游戏区域围墙的碰撞检测。如果检测到有碰撞,则游戏结束;否则游戏正常运行。这个是通过判断蛇的头部的横、纵坐标是否超过设定的额最大的界限或是低于最小的下限来判断的如图604.5.1所示为碰壁情况 图604.5.1为碰壁情况2、其次,考虑蛇的头部是否与自己身体的某个部位产生的碰壁检测。如果检测到有碰壁,则游戏结束;否则游戏正常运行。这个是通过一个循环将蛇的头部的横、纵坐标值与每节蛇身(处蛇头外)知道蛇的尾部的横、纵坐标值与蛇的头部的横、纵值一致,则游戏结束;否则游戏正常运行。如图604.5.2所示为蛇碰到自身的情况,蛇头与距蛇尾长度一致的蛇身处相撞。 图604.5.2蛇碰到自身的情况 3、最后,就是蛇的头部是否与食物碰撞的检测了。如果检测到没有碰到则游戏正常运行;否则首先将二维数组screengridrowcol里有食物的那个数据元素清空,以便生成下一个食物。然后在游戏区域再随机产生一个食物,分数和蛇的长度分别增加1,最后在游戏区域下方显示分数。这里是通过令蛇的头部的横、纵坐标与先前产生食物时设置的2个变量进行比较判断的,这2个变量分别是r,c(r表示食物的横坐标,c表示食物的纵坐标),如果2者分别相等,则成功吞掉食物;否则游戏继续进行。 如图604.5.3所示为将要碰到食物的情况,食物用“*”表示图604.5.3蛇碰到食物的情况结论通过理论与实践的完美结合,我的贪吃蛇游戏成功的编制完成了。虽然所编写的而这个游戏很简单,又因为自己能力有限,游戏画面相当粗糙,没有经过美化的界面美感就谈不上了,只能用简陋形容了。但是值得骄傲的是整个游戏的编写是自己亲手,并且依靠自己的智慧独立完成的。在编写游戏过程中,遇到了许多难题,例如,蛇的头部与食物的检测问题,蛇的移动与显示问题,蛇的转向问题,食物的随机生成问题等等,这些个难题摆在面前,让人实在有些招架不住。经过查阅大量的文献资料阅读相关书籍,最后决定了采用分治算法的思想来对摆在面前的问题一一击破。在解决的是蛇的移动与显示问题的时候,通过大量的研究、实验与调试,试验过多种移动与显示的方法,最后决定了一种简单易用的算法。解决难题的时候,仿佛是拨了一层云,又见一层云,但是日光也越来越闪耀了,最终看到了阳光,取得了成功。自己感觉通过这次学习研究,自己受益匪浅。不仅自己揭开了游戏程序神秘的面纱,而且在实际的程序编写与调试过程中,自己成长了不少,实战的能力提高了不少。万丈高楼平地起,能够编写复杂的游戏都是在编写简单的游戏基础上演变过来的能力。然而像贪吃蛇这样的简单游戏,就自然成了设计者的入门之选,因为其界面简单,操作、玩法一目了然,所以编写起来就不会很困难,而且需要考虑的问题也不用太多,就是蛇的显示、移动、碰撞3个游戏的主块,攻破这3个主块,程序就自然编写出来了,不会一开始就把游戏设计初学者拒之门外。编成之后就感觉就会油然而生,并使之对游戏设计产生强烈的兴趣。成为向游戏设计之路成功迈进的第一步,同时对于VC+的运用水平也会上升,用起来会更加娴熟、得心应手。从易到难这是哟个准则,总之,贪吃蛇小游戏的研究会对增长程序阅读能力、程序编写能力等起到了意想不到的作用。当然,自己的程序不足之处到处都是,譬如可以讲画面设计的美观一点,可以设置一下游戏的难度,可以令算法的执行效率再高一点并不满足编写出来就行。字啊以后漫漫的研究学习道路上,我还有很远的璐要走,迎接我的是一个严峻的挑战。参考文献1.C语言程序设计. 朱立华 王立柱 . 人民邮电出版社。2.C语言程序开发范例宝典. 王娣 安剑 孙秀梅 . 人民邮电出版社。3.数据结构. 姜梅 赵坚 . 中国水利水电出版社4.高级语言C+程序设计 . 刘璟 周玉龙 . 高等教育出版社5.C+实战操作100例 . 蒋卫华 李伟华 . 清华大学出版社6.游戏设计基础 . Emest Adams . 机械工业出版社7.游戏设计概论 . 潜龙 . 科学出版社 致谢 2012.6附录 编码#define N 200#include <graphics.h>#include <stdlib.h>#include <dos.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戏速度自己调整*/struct Foodint x;/*食物的横坐标*/int y;/*食物的纵坐标*/int yes;/*判断是否要出现食物的变量*/food;/*食物的结构体*/struct Snakeint xN;int yN;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(void);/*输出成绩*/*主函数*/void main(void)Init();/*图形驱动*/DrawK();/*开始画面*/GamePlay();/*玩游戏具体过程*/Close();/*图形结束*/*图形驱动*/void Init(void)int gd=DETECT,gm;initgraph(&gd,&gm,"c:tc");cleardevice();/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/void DrawK(void)/*setbkcolor(LIGHTGREEN);*/setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/for(i=50;i<=600;i+=10)/*画围墙*/rectangle(i,40,i+10,49); /*上边*/rectangle(i,451,i+10,460);/*下边*/for(i=40;i<=450;i+=10)rectangle(50,i,59,i+10); /*左边*/rectangle(601,i,610,i+10);/*右边*/*玩游戏具体过程*/void GamePlay(void)randomize();/*随机数发生器*/food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/snake.life=0;/*活着*/snake.direction=1;/*方向往右*/snake.x0=100;snake.y0=100;/*蛇头*/snake.x1=110;snake.y1=100;snake.node=2;/*节数*/PrScore();/*输出得分*/while(1)/*可以重复玩游戏,压ESC键结束*/while(!kbhit()/*在没有按键的情况下,蛇自己移动身体*/if(food.yes=1)/*需要出现新食物*/food.x=rand()%400+60;food.y=rand()%350+60;while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/food.x+;while(food.y%10!=0)food.y+;food.yes=0;/*画面上有食物了*/if(food.yes=0)/*画面上有食物了就要显示*/setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);for(i=snake.node-1;i>0;i-)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/snake.xi=snake.xi-1;snake.yi=snake.yi-1;/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/switch(snake.direction)case 1:snake.x0+=10;break;case 2: snake.x0-=10;break;case 3: snake.y0-=10;break;case 4: snake.y0+=10;break;for(i=3;i<snake.node;i+)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/if(snake.xi=snake.x0&&snake.yi=snake.y0)GameOver();/*显示失败*/snake.life=1;break;if(snake.x0<55|snake.x0>595|snake.y0<55|snake.y0>455)/*蛇是否撞到墙壁*/GameOver();/*本次游戏结束*/snake.life=1; /*蛇死*/if(snake.life=1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/break;if(snake.x0=food.x&&snake.y0=food.y)/*吃到食物以后*/setcolor(0);/*把画面上的食物东西去掉*/rectangle(food.x,food.y,food.x+10,food.y-10);snake.xsnake.node=-20;snake.ysnake.node=-20;/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/snake.node+;/*蛇的身体长一节*/food.yes=1;/*画面上需要出现新的食物*/score+=10;PrScore();/*输出新得分*/setcolor(4);/*画出蛇*/for(i=0;i<snake.node;i+)rectangle(snake.xi,snake.yi,snake.xi+10,snake.yi-10);delay(gamespeed);setcolor(0);/*用黑色去除蛇的的最后一节*/rectangle(snake.xsnake.node-1,snake.ysnake.node-1,snake.xsnake.node-1+10,snake.ysnake.node-1-10); /*endwhile(!kbhit)*/if(snake.life=1)/*如果蛇死就跳出循环*/break;key=bioskey(0);/*接收按键*/if(key=ESC)/*按ESC键退出*/break;elseif(key=UP&&snake.direction!=4)/*判断是否往相反的方向移动*/snake.direction=3;elseif(key=RIGHT&&snake.direction!=2)snake.direction=1;elseif(key=LEFT&&snake.direction!=1)snake.directi-

    注意事项

    本文(最新c语言课程设计-贪吃蛇设计.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开