前面我们已经尝试了走迷宫,遵循的是下右上左的原则。现在我们改变寻找原则
下右左上
if(map[i][j]==0){
//当前这个位置为0.说明可以走
map[i][j]=2;
if (findway(map,i+1,j))
{//先下
return true;}
else if (findway(map,i,j+1)) {//右
return true;
}
else if (findway(map,i,j-1)) {//左
return true ;
}else if (findway(map,i-1,j)) {//上
return true;
}
else{
map[i][j]=3;
return false;
}
运行一下
1 1 1 1 1 1 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 1 1 1 1
====找路地图情况
====地图情况
1 1 1 1 1 1 1
1 2 0 0 0 0 1
1 2 0 0 0 0 1
1 2 2 2 0 0 1
1 1 1 2 0 0 1
1 0 0 2 0 0 1
1 0 0 2 2 2 1
1 1 1 1 1 1 1
仍得一样,那我们可以多设置几个障碍动态规划最短路径吗?
我现在在这里多设置了几个障碍
map[3][3]=1;
map[4][3]=1;
map[4][2]=1;
map[4][1]=1;
map[2][1]=1;
map[3][5]=1;
map[6][2]=1;
地图变成了
1 1 1 1 1 1 1
1 0 0 0 0 0 1
1 1 0 0 0 0 1
1 0 0 1 0 1 1
1 1 1 1 0 0 1
1 0 0 0 0 0 1
1 0 1 0 0 0 1
1 1 1 1 1 1 1
我遵循上左下右的原则走
1 1 1 1 1 1 1
1 2 2 0 0 0 1
1 1 2 2 2 0 1
1 3 3 1 2 1 1
1 1 1 1 2 0 1
1 0 0 0 2 0 1
1 0 1 0 2 2 1
1 1 1 1 1 1 1
还是蛮有趣的