打印迷宫路径

来源:互联网 发布:win10无线未识别的网络 编辑:程序博客网 时间:2024/06/16 16:44
bool doMaze(int m,int n, int  matrix[][6], int x,int y){if(!x&&!y){cout<<"("<<x<<","<<y<<") ";return true;}bool flag=false;//go leftif(y>0&&!matrix[x][y-1]){matrix[x][y-1]=1;flag = doMaze(m,n,matrix,x,y-1);if(flag){cout<<"("<<x<<","<<y<<") ";return true;}matrix[x][y-1] = 0;}//go rightif(y<n-1 && !matrix[x][y+1] ){matrix[x][y+1] = 1;flag = doMaze(m,n,matrix,x,y+1);if(flag){cout<<"("<<x<<","<<y<<") ";return true;}matrix[x][y+1] = 0;}//go upif(x>0 && !matrix[x-1][y] ){matrix[x-1][y] = 1;flag = doMaze(m,n,matrix,x-1,y);if(flag){cout<<"("<<x<<","<<y<<") ";return true;}matrix[x-1][y]=0;}//go downif(x<m-1 && !matrix[x+1][y] ){matrix[x+1][y] = 1;flag = doMaze(m,n,matrix,x+1,y);if(flag){cout<<"("<<x<<","<<y<<") ";return true;}matrix[x+1][y]= 0;}return flag;}void maze(){const int m = 7;const int n = 6;int matrix[m][n]={0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,0,0,0};if(!doMaze(m,n,matrix,m-1,n-1))cout<<"no path found"<<endl;}

原创粉丝点击