+ -
当前位置:首页 → 问答吧 → 诡异程序 求帮忙解决

诡异程序 求帮忙解决

时间:2011-10-22

来源:互联网

这是一个迷宫递归算法,求高手指点迷津错在哪里 不胜感激涕零
bool path1(DataType start,DataType end,int *maze[],int *sign[],Stack<DataType> &S)
{
DataType temp,z; //存储正确走法坐标及方向
int i,j,d;
d=0;
Item move[8]={0,1,
  1,1,
  1,0,
  1,-1,
  0,-1,
  -1,-1,
  -1,0,
  -1,1};  
if(start==end) //若找到出口,返回true
return true;
while((d++)<8)
{
temp.x=start.x+move[d].x; //确定下一个位置的坐标
temp.y=start.y+move[d].y;
if((maze[temp.x][temp.y]==0)&&(sign[temp.x][temp.y]==0)) //若下一个位置可通且未访问过
{
sign[temp.x][temp.y]=-1;
if(path1(temp,end,maze,sign,S)) //调用递归,找到通路
{
z.x=temp.x-move[d].x;
z.y=temp.y-move[d].y;
z.d=d;
S.push(z); //将temp的前一位置start压入栈
maze[temp.x][temp.y]=8;
return true;
}

}
}
return false;
}

作者: qiushuiqifei   发布时间: 2011-10-22

就是一个简单的dfs()搜索。。。。楼主贴出题目。。

作者: wwwzys   发布时间: 2011-10-22

热门下载

更多