#2
hunterevil2016-03-22 22:46
|
程序代码:
#include"iostream"
using namespace std;
#define size 3
int maze[size+2][size+2];
void creat(){ //创建迷宫
int i,j;
for(i=0;i<=size+1;i++)
for(j=0;j<=size+1;j++)
maze[i][j]=0;
i=0;
for(j=0;j<=size+1;j++)
maze[i][j]=1;
i=size+1;
for(j=0;j<=size+1;j++)
maze[i][j]=1;
j=0;
for(i=0;i<=size+1;i++)
maze[i][j]=1;
j=size+1;
for(i=0;i<=size+1;i++)
maze[i][j]=1;
}void set_m(){ //给迷宫设置障碍物,1表示有障碍物,0表示没有
maze[1][2] = 1;
maze[3][3]=1;
}
void show(){
int i,j;
for(i=0;i<=size+1;i++){ //输出迷宫
for(j=0;j<=size+1;j++){
if(maze[i][j]==-1)cout<<"*"<<" ";
if(maze[i][j]==1)cout<<"#"<<" ";
if(maze[i][j]==0)cout<<" ";
}
cout<<endl;
}
}
void search_m(int i,int j){ //查找路径,出口点在2,3.入口点在1,1
if(i==2&&j==3){maze[i][j]=-1;int static k=1;cout<<"第"<<k<<"种:\n";show();k++;return;}
if(maze[i][j]==-1||maze[i][j]==1)return; //maze[i][j]表示改点曾经走过。
maze[i][j]=-1;
search_m(i-1,j);
search_m(i,j+1);
search_m(i+1,j);
search_m(i,j+1);
maze[i][j]=0;
}
int main(){
creat();
set_m();
show();
search_m(1,1);
return 0;
}
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录