- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计报告
贪
吃
蛇
专 业
学生姓名
班 级
学 号
完成日期
一、游戏规则需求
1、 在打开程序后,出现选择界面,里面包含难度选择,其中难度选择能够使程序出现相应的游戏难度。
2、 开始游戏后, W A S D 键控制贪吃蛇的移动方向。
3、 当贪吃蛇向一个方向移动时,不能立刻向反方向移动。
4、 贪吃蛇撞到的自己的身体或者撞到墙时,游戏结束,并输出“ GAME OVER!”。
5、 贪吃蛇吃到一个食物后,出现白色闪烁一次,身体随之增加一个单位长度。
二、所需数据结构分析
1、所需函数模块
void begin();
开始
图形界面初始化
进入游戏难度选择界面
进入游戏界面
从键盘读入操作信息
各类消息判断并作相应的处理
蛇是否存活
关闭游戏,结束
函数
void main()
形初始化
void init()
= 80+ SNAKELEN;
[0].y = 155;
[1].x = 80;
[1].y = 155;
2;
right;
}
读入操作信息的处理
void snakemove()
{
int i;
for (i=; i0; i--)
{
[i].x = [i-1].x;
[i].y = [i-1].y;
}
switch
{
case up:
[0].y -= SNAKELEN;
break;
case down:
[0].y += SNAKELEN;
break;
case left:
[0].x -= SNAKELEN;
break;
case right:
[0].x += SNAKELEN;
} showsnake();
}
四、关键函数介绍
贪吃蛇链表
用链表的节点表示蛇,移动的时候增加一个头节点隐藏一个尾节点,吃食物只需增加一个头节点。
()函数
用数组读入图片信息, loadimage ()函数载入图片,然后用 putimage 函数显示图片,实现图形界面 。
() 函数
鼠标经过响应,改变按钮的状态,美化图形界面。
函数
实现鼠标点击响应,使游戏从登陆界面跳转到游戏界面。
5. rectangle ()函数
功 能 : 画出蛇身和食物
()
功 能 : 在指定位置显示一字符串
用 法 : void far outtextxy(int x, int y, char *textstring);
五、测试与调试
最初的时候,不知到要怎么编写有图形界面的贪吃蛇,在网上找了一些关于图形界面编程的教案,发现还要装一个 EasyX 的函数库。装上去后,花了一段时间去学习函数库里的函数应用。
2. 一开始只实现了简单的蛇的运动,还有很多 bug ,但经过调试,特别是怎么吃到食物,并且蛇身增长
的地方花了好多时间,后来 bug 基本被找出,蛇能吃到食物了。
接下去新建了一个文件,实现蛇的难度选择界面,这个比较简单,实现其来不是很难。但是要把两个文档连接起来毫无头绪。
和同年级的同学交流了一下,终于知道应该重新加载图形界面,通过查阅技术文档,还是解决了这个难题。心情大好 O(∩ _∩ )O~
六、心得与体会
通过一个多月的学习, 对 c 语言有了更深一步的了解。 从一开始的什么都不会, 自己一点点慢慢的摸索。发现书本上学到的东西还是很不够的, 还有好多东西需要我课外的学习。 对于贪吃蛇, 知道了它的实现原理,学会了对程序的模块设计、数据结构设计的简单分析。并通过源码分析讲述了各个模块的实现方法。在几个模块的实现过程中渗透了部分图形功能函数。通过本文的编写过程 ,掌握了以下几点知识点:
1) 图形系统的初始化和关闭
2) 各种画图函数的使用
3) 结构体的定义
4) 数组定义及应用
5) 函数嵌套及调用
6) 键盘操作
总的来说, 编程还是一个很需要耐心的工作, 特别是有 bug 找不出来的时候, 特别需要我静下心来好好研究。
很多时候都没有耐心改下去了。这次学习对我的耐心是一个极大的磨砺。收获还是蛮多的。
七、参考资料
1、教材 《C 程序设计》谭浩强编着;
2、图形编程速查手册
3、网络 c 语言教程
4、 C 语言课程设计案例精编 姜灵芝 , 余健
文档评论(0)