文档详情

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

发布:2017-06-14约7.07千字共18页下载文档
文本预览下载声明
贪吃蛇游戏程序设计 贪吃蛇游戏设计 一、设计任务 贪吃蛇游戏程序设计 二、设计目的 通过对贪吃蛇游戏的设计,来将所学的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
显示全部
相似文档