冀佳伟贪吃蛇游戏设计.docx

上传人:b****7 文档编号:11392689 上传时间:2023-02-28 格式:DOCX 页数:15 大小:438.78KB
下载 相关 举报
冀佳伟贪吃蛇游戏设计.docx_第1页
第1页 / 共15页
冀佳伟贪吃蛇游戏设计.docx_第2页
第2页 / 共15页
冀佳伟贪吃蛇游戏设计.docx_第3页
第3页 / 共15页
冀佳伟贪吃蛇游戏设计.docx_第4页
第4页 / 共15页
冀佳伟贪吃蛇游戏设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

冀佳伟贪吃蛇游戏设计.docx

《冀佳伟贪吃蛇游戏设计.docx》由会员分享,可在线阅读,更多相关《冀佳伟贪吃蛇游戏设计.docx(15页珍藏版)》请在冰豆网上搜索。

冀佳伟贪吃蛇游戏设计.docx

冀佳伟贪吃蛇游戏设计

贪吃蛇游戏设计文档

一、项目构思

本项目实现可一个在wintc环境下运行的贪吃蛇游戏。

游戏在屏幕上的一个给定区域内进行,玩家通过控制键盘上的上、下、左、右方向键来控制蛇的前进方向。

屏幕上随机出现食物,只要蛇头位置与食物有重合,就认为蛇吃到了食物,蛇身增长一节,分数也增加。

玩家一直玩下去,直到蛇碰到周围的墙壁或蛇头撞上蛇身体,游戏宣告结束。

1.功能需求

贪吃蛇游戏的总体需求就是能够正常玩游戏并能正常玩游戏并能够观察到自己的得分。

具体的功能型需求如下:

(1)玩家只能在屏幕上固定的区域内玩游戏,区域周围用墙壁状的图形来标识;

(2)蛇的身体有一个个小方块构成,蛇头由两个小方块构成;

(3)食物由一个方块构成,食物要随机出现在游戏区域内;

(4)玩家可用键盘上的上、下、左、右四个方向键来控制蛇的运行方向;

(5)当蛇向前一定过程中,碰上了食物,则蛇身增长一节,当前食物消失,并且在另一边游戏区域随机出现一个食物;

(6)蛇每增长一节,则得分相应增加,得分增加的原则如下:

原得分+10(0<原得分<=100)

新得分

原得分+20(100<原得分<=400)

原得分+50(400<原得分<=1000)

原得分+100(1000<原得分)

(7)得分实时显示在屏幕顶部(游戏区域边框外的某个位置)

(8)蛇在移动的过程中,蛇头不能撞上蛇身,蛇头也不能撞上周围墙壁,若这两种情况任意一种情形发生,则认为蛇已死,在游戏区域内显示“GAMEOVER”信息,并在顶部显示所得分数,游戏结束;

(9)在游戏过程中,玩家可随时按“ESC”键结束游戏。

2.非功能需求

(1)界面友好,图形界面,游戏开始前有游戏的简单使用说明,方便玩家使用;

(2)具有较好的容错能力,玩家在游戏过程中,除了规定的按键外,其他按键均忽略,不予处理;

(3)发布游戏时,将图形驱动加载到程序中,使系统具有良好的可扩展性和平台适应性,可在任何PC机上运行。

二、系统设计

1.实际思路

(1),贪吃蛇游戏的设计,第一步想到的当然是画出贪吃蛇,从而可以想到定义一个“蛇”的结构体的类型,这个结构体中包括:

蛇的坐标,蛇的长度,蛇运动的方向;蛇的生命。

而蛇的运动可以通过两种结构来实现:

数组和链表,我使用了简单但不简洁的数组来实现。

蛇的运动方向可以通过选择结构来实现控制蛇的运动方向。

(2),蛇已经构造出来了,第二步要构造的当然是蛇要吃的食物了。

和构造蛇一样,我们同样可以通过一个结构体来构造食物。

这个食物的结构体中包括:

食物的坐标和食物是否生成。

而食物的出现又是随机的,所以我们可以通过调用随机生成函数来实现这一功能。

(3),蛇和食物有了,就要设计蛇运动的区域了,我们可以同过调用图形化的函数,运用循环来实现游戏墙壁的设计。

(4),而游戏最重要的部分就是:

怎样驱动蛇的运动?

我们首先可通过

kbhit()函数,来接收是否有键盘输入蛇运动的方向。

在没有键盘输入的情况下,蛇的运动就要通过将画蛇的数组不停地进行交换来实现的。

蛇在吃完了食物之后身体的增加是通过增加数组的长度来实现的。

(5)最后要实现的就是在玩游戏过程中的分数的增加。

这也是运用了图形化函数来实现他的显示,同时通过一个分支结构来控制游戏的每个阶段的不同的分数的增加。

2.结构设计

“贪吃蛇”游戏的核心的部分是游戏的控制部分,也就是我们在玩游戏时,不断地通过改变蛇头的反向来吞噬食物的过程。

并且,在游戏的过程中还要显示玩家的得分。

为了实现这些功能,就需要各个小模块的功能支持。

具体的各个功能模块如下:

图形驱动;显示帮助信息;画周围的墙壁;显示分数;控制游戏;;结束游戏;关闭游戏图形驱动。

(1)main(),主函数;

在mian()函数之前我们已经对要用到的各个数据进行了宏定义。

包括:

蛇的最大节数;方向键;循环变量;接收按键值的变量;分数;还有蛇的速度。

而在main()函数中我们只需要调用几个要使用的自定义的函数即可。

包括:

图形驱动函数:

init();显示帮助函数:

help();开始的画面:

drawfence();

玩游戏函数playgame();图形结束函数:

closegame()。

(2)init(),图形化驱动函数

由于贪吃蛇游戏采用的图形化界面。

在屏幕作图之前吗,必须根据显示器适配器的种类将显示器设置成为某种图形模式,在未设置时,默认的屏幕为文本模式,此时,图形化函数均不能工作。

所以要用到图形初始化函数initgraph()和清除图形屏幕函数cleardevice()。

其中,initgraph()函数的初始化是:

voidfarinitgraph(intfar*gdriver,intfar*gmode,char*path);

其中第一个参数是图形驱动器;第二个参数是模式变量;第三个变量是图形驱动程序所在的目录里路径。

(3)drawfence(),周围墙壁函数

本游戏中的蛇运动的范围是一个矩形框围成的四面墙壁。

画出墙面,主要用三个函数:

1),setcolor(),作图颜色设置函数;

2),setlinestyle(),线性设置函数;

3),rectangle(),画矩形框函数;

在具体实现时,是通过循环来实现的。

(4)printscore(),得分显示函数

分数的显示是通过对一个变量的值以图形化的形式显示出来,同时采用某种颜色为背景来衬托成绩,义突出其的显示效果。

分数的显色主要涉及以下六个函数:

1).setfillstyle(),设置填充效果函数。

2).bar()画条形窗口函数

3).setcolor();

4).stetextstyle();

5).sprintf(),格式输出函数;

6).outtextxy();

(5)playgame(),游戏控制函数

游戏控制函数是贪吃蛇游戏的核心部分,由于控制蛇的移动和食物的出现好,以及得分的计算。

函数可分为一下的步骤来实现:

1)初始化蛇的相关信息;

2)初始化食物的相关信息;

3)输出初始化分数;

4)当玩家没有按“ESC”键时,一直重复以下各步;

5)当玩家不按任何键时,一直重复6—13各步骤;

6)在屏幕画出食物;

7)计算出蛇的每一节在屏幕中的位置;

8)根据蛇的移动方向,计算出下一步蛇头的坐标位置;

9)判断蛇头是不是撞上了自己的身体的任何一节,如果是,游戏结束;

10)判断蛇头是不是撞到饿了任何一面的墙壁了,如果是,游戏结束;

11)若(9)(10)都未发生,说明蛇活着,判断蛇是否吃到了食物,如果吃到了食物,则要先清除食物,并设置下一个食物的出现;同时,还要将蛇的身体增长一节;屏幕显示的分数还要增加。

12)将蛇在屏幕显示,然后游戏延迟一会儿,给玩家一点反应时间;

13)蛇在移动的过程中,蛇头不断前进,末尾一节不断清除,这样才能保证蛇在移动的过程中的正确性;

14)当玩家按下一个键时,接收该按键,并判断是不是“ESC”;如果是,则退出游戏,如果不是则进行(15)步的判断;

15)判断当前按键的方向是否与蛇头的方向相反,如果相反,则不做处理,只要不是相反的,则就改变蛇的移动方向。

16)回到(14)步去执行,一直循环往复,直到游戏结束。

(6)gameover(),游戏结束函数

这一模块,是在蛇头碰到了自己的身体的任何一节,或者是撞到了墙壁时,游戏结束时,显示在屏幕上的。

同时,结束时,还要调用分数显示函数。

(7)closegraph(),关闭图形驱动函数

当游戏结束界面显示完成后,要正式退出图形模式。

退出图形模式的函数为closegraph()。

函数原型:

voidfarclosegraph(void)。

在关闭图形模式之前应该线让屏幕暂停一下,所以要调用getch()函数。

三、系统实现

注:

流程图的绘制使用的是:

MicrosoftOfficeVisio2010

1.printscore()函数流程图

4.playgame()函数流程图

(1)贪吃蛇游戏的控制函数执行的流程图

 

(2)playgame()函数的判断并画出食物的程序片段

(3)playgame()函数的计算蛇的每一节的位置的程序片段

(4)playgame()函数的计算出蛇头的位置程序片段

 

(5)playgame()函数的判断是否蛇头撞到自身及蛇头撞到墙壁的程序片段

(6)playgame()函数的判断蛇是否吃到食物的程序片段

(7)playgame()函数的画出蛇的每一节的程序片段

(8)playgame()函数的清除蛇的最后一节的程序片段

5.gameover(),游戏结束函数

四、系统测试

该部分主要编写测试计划,记录测试的过程和结果,并对测试结果进行分析总结,优化系统。

1.功能测试

测试功能

测试结果

1

测试开始游戏和帮助信息

打开游戏主界面,画面显示游戏名称和相关的游戏帮助

2

测试蛇的运动

屏幕显示贪吃蛇在屏幕运动

3

测试控制蛇的方向键

通过键盘上,按键的指挥,蛇能够正确地移动

4

测试食物是否显示

游戏开始后,屏幕上显示

食物出现

5

测试蛇头吃食物功能

当蛇头碰到食物后,蛇的身体增长一节,食物消失,并在其它地方出现新的食物

6

测试分数显示功能

在屏幕上方有分数的显示,并且每当贪吃蛇吃到食物时,分数会增加。

7

测试游戏结束功能

当贪吃蛇撞到自己和墙壁时,游戏会结束,

并且显示“gameover”,

8

游戏退出功能

当玩家按下“ESC”按键时,游戏会退出。

2.测试结果

经测试,“贪吃蛇”游戏的功能和性能均符合要求!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1