1、 本科课程设计论文本科课程设计论文 题 目 用 C 语言实现贪吃蛇 系 别 信息科学与技术系 专业班级 姓 名 学 号 指导教师 年 月 日 信息科学与技术系 - 1 - 目目 录录 摘 要 - 2 - 第一章 绪 论 - 3 - 第二章 需求分析. - 4 - 2.1 功能需求 - 4 - 2.2 性能需求 - 4 - 第三章 程序设计 . - 5 - 3.1 总体设计 - 5 - 3.2 详细设计 - 5 - 第四章 调试与测试 . - 20 - 第五章 总结与心得 . - 22 - 附 录 . - 24 - - 2 - 摘摘 要要 贪吃蛇游戏是一个深受人们喜爱的游戏,一条在密闭的围墙内,
2、在围墙内随机出现一 个食物,通过按键盘上四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表 示食物被蛇吃掉,这时蛇的身体长一节,同时计 10 分,接着又出现食物,等待被蛇吃掉, 如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。 经过分析,我使用 C 语言开发工具,通过 TC 软件来实现,在掌握 C 语言的基础知识: 数据类型(整型.实型.字符型.指针.数组.结构等);运算类型(算术运算.逻辑运算.自增自减运 算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函 数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 关键字:
3、关键字: 贪吃蛇贪吃蛇 光标键光标键 数据类型数据类型 运算类型运算类型 程序结构程序结构 TCTC 软件软件 - 3 - 第一章第一章 绪绪 论论 贪吃蛇游戏是一个深受人们喜爱的游戏,一条在密闭的围墙内,在围墙内随机出现一 个食物,通过按键盘上四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表 示食物被蛇吃掉,这时蛇的身体长一节,同时计 10 分,接着又出现食物,等待被蛇吃掉, 如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每 长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所
4、以蛇不能向相反 的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝 着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇 的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因, 原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一 节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两 个结构体:食物与蛇。 表示食物与蛇的矩形块设计为 10*10 个像素单位,食物的基本数据域为他所出现的位 置, 用 x和 y座标表示, 则矩形块用函数 rectangle(x,y,x+
5、10,y+10)或 rectangle(x,y,x+10,y-10) 可以画出。由于每次只出现一个食物,所以设定 yes 表示是否要出现食物。蛇的一节身体 为一个矩形块,表示矩形块只需起点座标 x,y。身体不断增长,用数组存放每节座标,最 大设定为N=200, node表示当前节数。 保存蛇的移动方向的变量direction和生命的变量 life, 一旦 life 为 1,表示蛇死,结束。 本系统的主要功能主要有: 1.初始图形系统 2.开始画面 3.玩游戏的具体过程 4.游戏结束后 5.关闭图形系统 6.结束程序 - 4 - 第二章第二章 需求分析需求分析 2.12.1 功能需求功能需求:
6、根据主界面显示内容进行选择并进一步执行相应操作。 一、 初始图形: 通过函数 Init() ,初始画面、 二、开始画面: 通过函数 DrawK(),主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方 向输出连续的宽度和高度的矩形方块。 三、玩游戏的具体过程: 通过函数 GamePlay(),通过按键盘上四个光标键控制蛇向上下左右四个方向移动, 蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,接着又出现食物,等待被蛇 吃掉,小蛇继续运动。 四、游戏结束: 通过函数 GameOver(),蛇碰到墙壁或者碰蛇身,游戏结束,清除屏幕,输出分数显 示游戏结束信息。 五、关闭图形系统: 通过函数 Close(),关闭图形界面。 六、结束程序 七、退出系统 2.2 性能需求性能需求: 具有良好的可靠性和安全性。 对于系统要求比较低。 使用范围比较广。 - 5 - 需在 TC 下运行。 第三章第三章 程序设计程序设计 3.1 概要概要设计设计 将此系统化分为如下模块: 1、