- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计之迷宫游戏
##大学
数据结构课程设计报告
题目: 走迷宫游戏
院(系): 计算机工程学院
学生姓名:
班级: 学号:
起迄日期: 2011-6-21 至 2011-6-30
指导教师:
2010—2011年度 第 2 学期
一、需求分析
1 问题描述
走迷宫游戏
程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
2) 迷宫的墙足够结实,老鼠不能穿墙而过;
3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;
5) 找出走出迷宫的所有路径,以及最短路径。
利用序列化功能实现迷宫地图文件的存盘和读出等功能
2.数据结构设计:
采用的是栈来存储数据,进栈实际是在栈中插入三元组,出栈则只数组的个数进行操作
抽象数据类型线性表的定义如下:
ADT SqStack{数据对象:D={ai| ai ∈SElemType,i=1,2,3……,n,n≥0}
数据关系:R1={ai-1,ai| ai-1,ai ∈D,i=1,2,3,……,n}
基本操作:
SqStack *InitStack()
操作结果:创建一个空栈
void Push(SqStack *S,SElemType data)
初始条件:栈S已存在
操作结果:插入一个元素,并且使数据个数加一(top++)
void Pop(SqStack *S)
初始条件:栈S已存在。
操作结果:栈中元素个数减一(top--)
}
软件结构设计:
game()模块
函数原型:
void game(int map1[h][w])//游戏函数
{
#define killtime 15
clock_t start, finish;
double duration;
int x=1,y=1,m=0,n=0,M,N,MAP[100][100];//x-colom y-row
char cCtrl=\0;
cout 游戏规则:endl w向上,s向下,a向左,d向右,q退出endl 按任意键开始,方向键开始计时endl;
for(M=0;M=h-1;M++)
for(N=0;N=w-1;N++)
MAP[M][N]=map1[M][N];
{
{
start = clock();//开始计时
while((cCtrl=getch())!=q)
{
switch(cCtrl)
{
case w://向上
{ cout\a;//响铃
if(y0!MAP[y-1][x])
y--;
}break;
case s://下
{ cout\a;
if(!MAP[y+1][x])
y++;
}break;
case a://左
{ cout\a;
if(x0!MAP[y][x-1])
x--;
}break;
case d://右
{ cout\a;
if(!MAP[y][x+1])
x++;
}break;
}
system(cls);//刷屏
for(m=0;mh;m++)
{
for(n=0;nw;n++)
{
if(m==yn==x)
{
system(color 6);
cout◎;//现实老鼠所在位置
}
else
{
if(MAP[m][n])
cout■;//打印墙壁
else
{
if(m==9n==8)
cout☆;//显示粮仓
else
cout□;//显示可行路径
}
}
if(x==8y==9)
{
finish = clock();//停止计时
duration = (double)(finish - start) / CLOCKS_PER_SEC;//compute the time
coutendl你耗费的时间是:endlduration秒endl;
if(durationkilltime)//lose
{
cout 你输了,完蛋了,小老鼠要饿死了 囧rz!!endl;
}
else
文档评论(0)