《贪吃蛇游戏课程设计》报告

《贪吃蛇游戏课程设计》报告

ID:38828254

大小:215.10 KB

页数:16页

时间:2019-06-20

《贪吃蛇游戏课程设计》报告_第1页
《贪吃蛇游戏课程设计》报告_第2页
《贪吃蛇游戏课程设计》报告_第3页
《贪吃蛇游戏课程设计》报告_第4页
《贪吃蛇游戏课程设计》报告_第5页
资源描述:

《《贪吃蛇游戏课程设计》报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、贪吃蛇游戏程序设计一、课程设计任务贪吃蛇小游戏程序设计二、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。(1).收集资料,分析课题,分解问题,形成总体设计思路;(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(4).完成课程设计报告,并进行答辩三、需求分析3.1、程序功能贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙

2、里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。3.2、设计思想程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向

3、键后,先确定蛇头的位置,而后蛇1的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。3.3、流程图开始初始化界面和蛇身游戏者按键选择放置食物蛇开始运动蛇吃到食?NY蛇长大N蛇死亡?YY继续?N退出界面2四、设计的具体实现(1)函数定义函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#defin

4、eN200{#defineM200intx;//食物的横坐标#include"graphics.h"inty;//食物的纵坐标#includeintyes;//判断是否要出现食物的变量#include}food;//食物的结构体#includestructSnake#include{#includeintx[M];#includeinty[M];#includeintnod

5、e;//蛇的节数#defineLEFT97//Aintdirection;//蛇的移动方向#defineRIGHT100//Dintlife;//蛇的生命,0表示活着,1#defineDOWN115//S表示死亡#defineUP119//W}snake;#defineEsc0x011bvoidInit();//图形驱动inti,key;voidClose();//图形结束intscore=0;voidDrawK();//开始画面intgamespeed=250;//游戏速度可根据实voidGamePlay

6、();//玩游戏的具体过程际情况自行调整voidGameOver();//游戏结束structFoodvoidPrScore();//输出成绩(2)主函数main()主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序voidmain()//主函数{Init();//图形驱动DrawK();//开始画面3GamePlay();//玩游戏的

7、具体过程Close();//图形结束}voidInit()//图形驱动{intgd=DETECT,gm;initgraph(&gd,&gm,"");/*此处为turboc的路径,读者可以根据自己的电脑而改*/cleardevice();}(3)画界面函数DrawK()主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。voidDrawK()//开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙{setbkcolo

8、r(GREEN);setcolor(LIGHTRED);setlinestyle(0,0,5);//设置线型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,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。