C++编程问题:编一个迷宫游戏程序
答案:2 悬赏:0
解决时间 2021-02-12 17:08
- 提问者网友:护她一生,唯爱
- 2021-02-11 22:02
C++编程问题:编一个迷宫游戏程序
最佳答案
- 二级知识专家网友:开心就好
- 2021-02-11 23:15
在书找的,只打了个结构体(太多了),我利用stack做的!希望能对你有所帮助!程序如下:
typedef struct{
int ord;//通道块的路径上的序号
PosType seat;//通道块在迷宫的坐标位置
int di;//从此通道块走向下一个通道块的方向
}SelemType;//stack的元素类型
Status MazePath(MazeType maze,PosType start,PosType end){
//若迷宫 maze中存在从入口start到出口end的通道,所以,求得一条存放在stack中
//(从stack底到顶)并返回TRUE,否则返回FALSE
InitStack(S);
curpos=start;//设置当前的位置为入口位置
curstep=1;//探索第一步
do{
if(Pass(curpos)){//当前位置可以通过,即是未曾走过的通道块
FootPrint(curpos);//留下足迹
e=(curstep,curpos,1);
Push(s,e);//加入路径
if(curpos==end)
return(TRUE);//到达终点
curpos=NextPos(curpos,1);//下一位置是当前位置的东部
curstep++;//探索下一步
}
else{//当前位置不能通过
if(!StackEmpty(S)){
Pop(S,e);
while(e.di==4&&!StackEmpty(S)){
MarkPrint(e.seat);//留下不能通过的标记,并退回一步
Pop(S,e);
}
if(e.di<4){
e.di++;
Push(s.e);//换下一个方向探索
curpos=NextPos(e.seat e.di);//设定当前位置是该新方向上的相邻块
}//if
}//if
}//else
}while(!StackEmpty(S));
return(FALSE);
}//MazePath
typedef struct{
int ord;//通道块的路径上的序号
PosType seat;//通道块在迷宫的坐标位置
int di;//从此通道块走向下一个通道块的方向
}SelemType;//stack的元素类型
Status MazePath(MazeType maze,PosType start,PosType end){
//若迷宫 maze中存在从入口start到出口end的通道,所以,求得一条存放在stack中
//(从stack底到顶)并返回TRUE,否则返回FALSE
InitStack(S);
curpos=start;//设置当前的位置为入口位置
curstep=1;//探索第一步
do{
if(Pass(curpos)){//当前位置可以通过,即是未曾走过的通道块
FootPrint(curpos);//留下足迹
e=(curstep,curpos,1);
Push(s,e);//加入路径
if(curpos==end)
return(TRUE);//到达终点
curpos=NextPos(curpos,1);//下一位置是当前位置的东部
curstep++;//探索下一步
}
else{//当前位置不能通过
if(!StackEmpty(S)){
Pop(S,e);
while(e.di==4&&!StackEmpty(S)){
MarkPrint(e.seat);//留下不能通过的标记,并退回一步
Pop(S,e);
}
if(e.di<4){
e.di++;
Push(s.e);//换下一个方向探索
curpos=NextPos(e.seat e.di);//设定当前位置是该新方向上的相邻块
}//if
}//if
}//else
}while(!StackEmpty(S));
return(FALSE);
}//MazePath
全部回答
- 1楼网友:摧毁过往
- 2021-02-12 00:04
这个很难的,迷宫的连通性要保证,还要图形化,搜索算法等等。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯