c语言贪吃蛇程序设计报告蚂蚁文库,贪吃蛇游戏C程序设计报告

41528d3028836879cd698677c3999917.gif贪吃蛇游戏C程序设计报告

目 录 一.设计要求2 二.设计的作用、目的2 三.课题分析2 1.贪吃蛇游戏功能分析2 2.游戏界面分析3 3.设计思路分析3 四.设计的具体实现3 1.系统组成模块结构及功能3 (1)函数定义3 (2)主函数main( )4 (3)画界面函数DrawK( )5 (4)游戏具体过程函数GamePlay( )6 (5)游戏结束函数GameOver( )9 2.系统程序结构及流程图10 3.重要函数介绍12 4.程序代码编写及注释14 5.软件调试问题分析及解决方法20 6.软件运行结果20 五.心得体会及建议22 六.参考文献23 贪吃蛇游戏C程序设计报告 一.设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).深入分析各个小问题,列出大纲,编写各部分程序模块; (3).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (4).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (5).完成课程设计报告,并进行答辩。 二.设计的作用、目的 C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。作为当代的大学生要很好的利用它,学好一门设计语言,实现学以至用。 制作C程序报告,是为了巩固和加深对C语言课程的基本知识的理解和掌握,并且能够掌握C语言编程和程序调试的基本技能。 通过游戏程序的设计训练和提高学生的基本技能,掌握字符串的表示方法和字符串函数的功能、Turbo C图形操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高运用C语言解决实际问题的能力,巩固C语言语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。 三.课题分析 1.贪吃蛇游戏功能分析 C语言是一种中性化的语言,用C语言来编写程序实现贪吃蛇游戏,能有效反映本有本游戏的基本特点。编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体)游戏结束。 2.游戏界面分析 程序运行时边框表示围墙,红色矩形块代表蛇,黄色小方块代表食物。 3.设计思路分析 这个程序的关键点是表示蛇的图形以及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头的方向移动,图形的实现是从蛇头的新位置开始画出蛇,这时,由于没有清屏的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来蛇会多一节身体,所以将蛇的最后一节用背景色来覆盖。食物的出现和消失是以画矩形块和覆盖矩形块来表示的 四.设计的具体实现 1.系统组成模块结构及功能 本贪吃蛇程序包括以下主要的模块: (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #include /*图形头文件*/ #include /*包含rand等函数*/ #include /*包含bios函数*/ #define LEFT 0 x4b00/*光标左键值*/ #define RIGHT 0 x4d00/*光标右键值*/ #define DOWN 0 x5000/*光标下键值*/ #define UP 0 x4800/*光标上键值*/ #define ESC 0 x011b/*ESC的ASCII码*/ int i,key;/*图形坐标变量及按键变量*/ int score=0;/*得分*/ int gamespeed=10000;/*游戏速度自己调整*/ struct Food { int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/ }food;/*食物的结构体*/ struct Snake { int x[];/*蛇的横坐标*/ int y[];/*蛇的纵坐标*/ 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)/*主函数*/ (2)主函数main( ) 主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序 void main(void)/*主函数*/ { Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/ } void Init(void)/*图形驱动*/ { int gd=DETECT,gm; initgraph( /*第一个参数表示图形适配器的类型,第二个为在该类型下图形的显示模式,第三个参数指定驱动程序所在目录。*/ cleardevice(); } (3) 画界面函数DrawK( ) 主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值