- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湖 南 大 学C语言程序代码
湖 南 大 学
C语言实训课程序设计------贪吃蛇
院(系): 电气与信息工程学院
专业班级: 测控技术与仪器1102班
学 号: 20110704203
学生姓名: 晁涛涛
贪吃蛇游戏程序设计
一、课程设计任务
贪吃蛇小游戏程序设计
二、设计要求
通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。
(1).收集资料,分析课题,分解问题,形成总体设计思路;
(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;
(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;
(4).完成课程设计报告。
三、需求分析
3.1、程序功能
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记1分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
3.2、设计思想
程序关键在于表示蛇的图形及蛇的移动。用一个小*表示蛇的一节身体,身体每长一节,增加一个*。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画*和覆盖*。为了便于理解,定义两个结构体:食物与蛇。
3.3、流程图
四、设计的具体实现
函数定义
函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用。
void greate_food() //建立食物
void add_head(int a,int b) //增加蛇头
void delete_tail() //删除蛇尾
int move() //移动函数
void change_point(char keydown) //控制方向函数
void init() //蛇位置的初始化
void output() //边框输出函数
int main() //主函数
五、调试及解决方法
自己设计过程中最大的问题就是对图示界面的处理,通过自学和上网查找,才有了深入的了解。对程序中出现的问题,一方面自己按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到不懂的问题,我去图书馆或上网查阅一些资料也解决了一系列调试源程序时出现的问题,不过我的程序界面依旧有些问题,就是屏幕一直闪烁,目前还没得到解决,会一直查找方法解决。
六、测试结果
七、设计心得体会
在设计这个程序中我主要学会了如何运用以下有关C语言和C++的知识
函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序
十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增
加了程序的可读性。
分析函数先从main()函数入手。Main()函数是C++源程序编译时的开始,
从main()函数开始读函数可将其他函数的功能理解得更透彻。
在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出
来,选择正确的数据结构然后在将程序模块化,按照模块编写函数更加简单合理。
我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行
处理的函数,起功能我都有所了解。
5) 学会了有关头文件的使用方法,及系统调配问题的解决方法等。
6)了解到了注释的重要性。
八、源代码
#include stdio.h
#include malloc.h
#include stdlib.h
#include time.h
#include conio.h
#define N 20
int score=0;
int game[N][N];
enum //枚举型
{
UP,DOWN,LEFT,RIGHT
}point; //确定point为整型常量
typedef struct snake
文档评论(0)