贪吃蛇游戏程序设计简单易懂.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  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语言知识运用,从而达到巩固知识灵活运用知识的目的,实现理论与实际的结合。 三、设计思路分析 (1)游戏规则 在一个四周都用“砖”围起来的空间里,空间里随机出现一个食物,食物出现的位置必须在围墙内,且出现的位置不能与蛇的位置重合。然后操作者通过上下左右键来控制蛇吃掉食物,蛇每吃掉一个食物,自己的长度就增加一节,同时游戏分数增加10分。蛇吃到食物后,系统又随机产生另一个新的食物。若蛇在运动过程中,撞到墙或碰到自己的身体,则立刻结束游戏,否则继续进行。 (2)蛇的运动 此程序的关键就在于蛇的移动。游戏在进入界面后,在没有执行任何操作的情况下,蛇沿着原来的方向以某一速度前行。若蛇在水平方向上前行,操作者按向左或向右的键,此时该指令判为无效,蛇继续沿着原来水平的方向前行。同样的道理,若蛇在竖直的方向上前行,操作者按向上或向下的键,此时该指令也判为无效,蛇继续沿着原来竖直的方向前行。若蛇在运动过程中,操作者按下了有效的键后,首先应确定蛇头的位置,然后蛇的身体随着蛇头而运动。在新的蛇头确定的那一瞬间,蛇看上去好像比之前多了一节,为了不出现这样的情况,在新的蛇头出现的时候,就应该用程序的背景颜色将蛇尾遮盖掉。这样看起来,既实现了蛇的转向,又不会使蛇无缘无故的多一节。所以,在游戏的整个界面中,共有两个结构体----食物与蛇。 (3)流程图 四、程序模块化思想分析 整个程序主函数主要由四大部分构成:图形驱动,开始画面,玩游戏的具体过程,图形结束。 //***************************************** void main()//主函数 { Init();//图形驱动 DrawK();//开始画面 GamePlay();//玩游戏的具体过程 Close();//图形结束 } //***************************************** 所以只要分块完成对应的程序,然后把各个部分的程序连起来就可以了。 图形的驱动 图形的驱动,首先是由detectgraph通过检测硬件确定图形驱动程序和模式不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器, 在不同模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种图形模式, 在未设置图形模式之前,微机系统默认屏幕为文本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。//*************************************************** void Init()//图形驱动 { int gd=DETECT; // gd=DETECT把自动测试硬件的结果赋给图形驱动器 int gm;//图形模式 initgraph(gd,gm, );//根据测试结果初始化图形 cleardevice(); //清除图形屏幕} //**************************************************** 开始画面 画面的开始也就是画墙,其中要规定围墙的范围坐标。要设置“砖”的形状颜色,分数的背景颜色。 setbkcolor函数用指定的颜色值来设置当前的背景色,如果指定的颜色值超出了当前设备的表示范围,则设置为最近似的、设备可以表示的颜色。setcolor?图形屏幕函数设置前景颜色BLACK黑BLUE 兰GREEN绿CYAN青RED红MAGENTA洋红BROWN棕LIGHTGRAY淡灰DARKGRAY深灰LIGHTBLU淡兰 WHITE白LIGHTGREEN淡绿LIGHTCYAN淡青 LIGHTMAGENTA 淡洋红LIGHTRED 淡红YELLOW 黄rectangle(int left, int top, int right, int bottom)函数画矩形来做围墙,(left ,top )为矩形的左上坐标,(right,bottom)为矩形的右下坐标,两者可确定一个矩形的大小设置当前画线宽度和类型PS_SOLID画笔画出的是实线PS_DASH画笔画出的是虚线PS_DOT画笔画出的是点线PS_DASHDOT画笔画出的是点划线PS_DASHDOTDOT画笔画出的是点-点-划线//********************************************************** void DrawK()//开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙 { setbkcolor(BLUE);//分数背景颜色 s

文档评论(0)

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

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

1亿VIP精品文档

相关文档