1. 首先创建地图
int i=0,j=0;
int a[8][8];
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(i==0||i==7||j==0||j==7){
a[i][j]=1;
}else{
a[i][j]=0;
}
}
}
srand((unsigned)time(NULL));
int m=rand()%6+1;
int n=rand()%6+1;
a[m][n]=1;
printf("=====地图情况=====\n");
for(i=0;i<8;i++){
for(j=0;j<8;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
?
这里我们就得到了地图的情况,我们这里使用了srand函数来随机生成一个障碍物。
接下来我们就应该实现走迷宫
2. 走迷宫
bool FindWay(int a[8][8],int i,int j){
if(a[6][6]==2){
printf("到达世界最高城理塘!!\n");
return true;
}else{
if(a[i][j]==0){
a[i][j]=2;//表示已经走过该位置
if(FindWay(a,i,j+1)){ //上下左右先后顺序随意
return true;
}else if(FindWay(a,i+1,j)){
return true;
}else if(FindWay(a,i-1,j)){
return true;
}else if(FindWay(a,i,j-1)){
return true;
}
else{
a[i][j]=3;//此路不可通
return false;
}
}else{//已经走过或者遇见障碍物或者此路不可通
return false;
}
}
}
这样我们就可以实现简单迷宫问题
?
?如果感兴趣的话可以尝试改变顺序来改变路径。
|