【优质文档】贪吃蛇游戏课程设计报告.pdf
《【优质文档】贪吃蛇游戏课程设计报告.pdf》由会员分享,可在线阅读,更多相关《【优质文档】贪吃蛇游戏课程设计报告.pdf(15页珍藏版)》请在三一文库上搜索。
1、贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运 用资料,实现理论与实际相结合。 (1) 收集资料,分析课题,分解问题,形成总体设计思路; (2) 对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具 体介绍; (3) 上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能 正常运行; (4) 完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通 过按键盘四个光标键控制蛇向上
2、下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇 身体长一节,同时记10 分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身 体交叉蛇头撞倒自己身体游戏结束。 3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每 长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反 的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝 着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇 的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因, 原来的蛇的位置和新
3、蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一 节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两 个结构体:食物与蛇。 3.3、流程图 开始 初始化界面和蛇身 放置食物 蛇开始运动 蛇吃到食 ? 蛇长大 蛇死亡 ? 继续 ? 退出界面 N N Y N Y 游戏者按键选择 Y 四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义, 并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include“graphics.h“ #include #include #include #include #in
4、clude #include #include #define LEFT 97/A #define RIGHT 100/D #define DOWN 115/S #define UP 119/W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;/游戏速度可根据实 际情况自行调整 struct Food int x;/食物的横坐标 int y;/食物的纵坐标 int yes;/判断是否要出现食物的变量 food;/食物的结构体 struct Snake int xM; int yM; int node;/蛇的节数 int
5、direction;/蛇的移动方向 int life;/蛇的生命, 0 表示活着, 1 表示死亡 snake; void Init();/图形驱动 void Close();/图形结束 void DrawK();/开始画面 void GamePlay();/玩游戏的具体过程 void GameOver();/游戏结束 void PrScore();/输出成绩 (2)主函数 main( ) 主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初 始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体 过程,游戏结束后调用Close()
6、关闭图形系统,结束程序 void main()/主函数 Init();/图形驱动 DrawK();/开始画面 GamePlay();/ 玩游戏的具体过程 Close();/图形结束 void Init()/图形驱动 int gd=DETECT,gm; initgraph(/*此处为 turboc 的路径,读者可以根据自己的电脑而改*/ cleardevice(); (3) 画界面函数 DrawK( ) 主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和 高度均的矩形方块,表示围墙,为了醒目,设置为白色。 void DrawK()/开始画面,左上角坐标为(50,40) ,
7、右下角坐标为( 610,460)的围墙 setbkcolor(GREEN); setcolor(LIGHTRED); setlinestyle(0,0,5);/设置线型 for(i=50;i0;i-)/蛇的每个环节往前移动,也就是贪吃蛇的关 键算法 snake.xi=snake.xi-1; snake.yi=snake.yi-1; switch(snake.direction)/1,2,3,4表示上下左右四个方向,通过这个判断 来移动蛇头 case 1: snake.x0+=10;break; case 2: snake.x0-=10;break; case 3: snake.y0-=10;b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优质文档 优质 文档 贪吃 游戏 课程设计 报告
链接地址:https://www.31doc.com/p-5301908.html