南京工程学院毕业设计说明书(论文)
图4-1 概要设计图
背景音乐 3.2.1画面设计
(1)主要是对边框、食物、蛇的设计,起用了一些链表和库函数; (2)画面的启动的问题,紧接着就是是画面的绘制
(3)食物和蛇放在游戏的具体过程中,因为食物是随机的,而蛇是移动的。
3.2.2游戏过程
主要是对食物和蛇的设置。在这个环节过程中有几个重要的算法,是程序能否成功地运行的关键。其主要有蛇是如何移动身体的;蛇怎样才能吃到食物;随着游戏得分增加,游戏的等级也增加,同时蛇的爬行速度也加快了;怎样判断蛇的死亡等。
3.2.3游戏结束
蛇如何死亡
蛇死亡后即意味着游戏的结束
3.2.4添加功能
(1)在游戏的开头添加“WELCOM TO GAME”的语句,并添加“ 按任意键继续”以提示用户;
(2)添加背景音乐“筷子兄弟——小苹果”,可以在玩游戏的 过程中,边玩游戏边听音乐。
第四章 详细设计
- 8 -
南京工程学院毕业设计说明书(论文)
4.1程序设计分析
N 游戏结束? 游 戏 过 程 背 景 音 乐 开 始 欢 迎 界 面 游 戏 界 面
Y 结 束 游 戏
退 出 游 戏 结 束 图5-1 程序设计流程图
这是一个简单的游戏,所以循环和分支之类的函数在大的面上运用较少,主要体现在计算上,尤其是坐标上的计算较为突出。简单易懂,一目了然
- 9 -
南京工程学院毕业设计说明书(论文)
4.2主要函数:
表5-1贪吃蛇主要函数
函数 HideCursor() GotoRood(int x, int y) Random(int n) BuildSnk(SNAKE *head) RemoveSnk(SNAKE *head) Move(int *d) IniScreen(SNAKE *head) *snk) CollisionTest(SNAKE *head) Eated(SNAKE *head, FOOD 蛇是否吃到食物 *fd) GameOver(SNAKE *head) gameing() PlaySound() 判断游戏结束了没 游戏过程 播放背景音乐 隐藏光标 功能 光标跳跃到(x,y)位置 随机生成食物 构造蛇身 清除函数 控制蛇懂得移动 初始化屏幕 蛇体发生冲突 碰撞测试 CreatFood(FOOD *fd, SNAKE 做蛇的食物,增加一个的功能就是让食物不与
4.3主要代码 4.3.1 Main()主函数
主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数gameing(),即玩游戏的具体过程,游戏结束后执行return 0;语句关闭图形系统,结束程序。
代码如下:
int main()
{
- 10 -
南京工程学院毕业设计说明书(论文)
GotoRood(START_X + SCREEN_WIDTH / 2, START_Y + SCREEN_LENGTH
/ 2);
printf(\
GotoRood(START_X + SCREEN_WIDTH / 2-2, START_Y + SCREEN_LENGTH
/ 2+10);
system(\
system(\清除屏幕内容
PlaySound(TEXT(\
SND_ASYNC | SND_NODEFAULT); while (1)
{
gameing(); return 0;
NULL,
}
}
程序分析:
一般而言,编写一个能运行在操作系统上的程序,都需要一个主函数。主函数意味着建立一个独立进程,且该进程成为了程序的入口,对其它各函数(在某些OOP语言里称作方法,比如Java)进行调用,当然其它被调用函数也可以再去调用更多函数.......这样整个程序的运行轨迹就像一种栈,有时我们称之为调用栈。主函数既是程序的入口,又是程序的出口,通常我们还可以指定一个exit code再退出,以表明程序最后的结果是什么样的。
自然而然的,这里的main函数就是贪吃蛇游戏程序的入口函数,通过该入口函数,进而可以调用gameing()函数,使游戏运行起来
4.3.2 游戏界面设计
主界面就是一个密封的矩形框,在矩形框的左边是游戏的操作说明,在框内主要是蛇和食物。游戏边框流程图如图5-2所示。
开 始 - 11 -
南京工程学院毕业设计说明书(论文)
定位光标(15,4) i=0
N i<47
Y
画上边围墙的一个矩形框
画下边围墙的一个矩形框
i=i+1
j=1
N j<15
Y 画右边围墙的一个矩形框 画左边围墙的一个矩形框
j=j+1
代码如下:
结 束 图5-2 游戏边框流程图
void IniScreen(SNAKE *head) /*初始化屏幕*/
{
- 12 -