湖南大学C语言程序代码.doc

湖南大学C语言程序代码.doc

ID:50842615

大小:104.50 KB

页数:12页

时间:2020-03-15

湖南大学C语言程序代码.doc_第1页
湖南大学C语言程序代码.doc_第2页
湖南大学C语言程序代码.doc_第3页
湖南大学C语言程序代码.doc_第4页
湖南大学C语言程序代码.doc_第5页
资源描述:

《湖南大学C语言程序代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、湖南大学C语言实训课程序设计------贪吃蛇院(系):电气与信息工程学院专业班级:测控技术与仪器1102班学号:20110704203学生姓名:晁涛涛贪吃蛇游戏程序设计一、课程设计任务贪吃蛇小游戏程序设计二、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。(1).收集资料,分析课题,分解问题,形成总体设计思路;(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(4).

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

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

4、a,intb)//增加蛇头voiddelete_tail()//删除蛇尾intmove()//移动函数voidchange_point(charkeydown)//控制方向函数voidinit()//蛇位置的初始化voidoutput()//边框输出函数intmain()//主函数五、调试及解决方法自己设计过程中最大的问题就是对图示界面的处理,通过自学和上网查找,才有了深入的了解。对程序中出现的问题,一方面自己按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到不懂的问题,我去图书馆或上网查阅一些资料也解决了一系列调试源程序时出现的问题,不过我的

5、程序界面依旧有些问题,就是屏幕一直闪烁,目前还没得到解决,会一直查找方法解决。六、测试结果七、设计心得体会在设计这个程序中我主要学会了如何运用以下有关C语言和C++的知识1)函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增加了程序的可读性。2)分析函数先从main()函数入手。Main()函数是C++源程序编译时的开始,从main()函数开始读函数可将其他函数的功能理解得更透彻。3)在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出来,选择正确的数据结构然后在将程序

6、模块化,按照模块编写函数更加简单合理。4)我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行处理的函数,起功能我都有所了解。5)学会了有关头文件的使用方法,及系统调配问题的解决方法等。6)了解到了注释的重要性。八、源代码#include#include#include#include#include#defineN20intscore=0;intgame[N][N];enum//枚举型{UP,DOWN,LEFT,RIGHT}point;//确定point为

7、整型常量typedefstructsnake//结构体{structsnake*perior;structsnake*next;intx;inty;}snake;snake*head,*tail;structFoodinfo{intfood_x;intfood_y;}food;//建立食物voidgreate_food(){srand((unsigned)time(NULL));do{food.food_x=rand()%18;/*产生18以内的随机整数*/food.food_y=rand()%18;}while(1==game[food.food_x][f

8、ood.food_y]);game[food.foo

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

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

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