#include<iostream>
#include<stdlib.h>
#include<malloc.h>
#define M 10//定义迷宫长度
#define N 10//定义迷宫宽度
using namespace std;
int MG[M][N];//迷宫数组
typedef struct Z//定义路径栈数据类型
{
int x,y;
}LJ;
LJ LJZ[M*N];//定义路径栈 记录走过的路径
int PD(int a[M][N],int x,int y)//判断函数 判断某点是否为死路
{
/*
失败的判死函数
if(((x+1!=M) && (a[x+1][y]!=1) && (a[x+1][y]!=2) )||
((y+1!=N) && (a[x][y+1]!=1) && (a[x][y+1]!=2) )||
((y-1!=-1)&& (a[x-1][y]!=1) && (a[x-1][y]!=2) )||
((x-1!=-1)&& (a[x][y-1]!=1) && (a[x][y-1]!=2) )
)
return 1;
else return 0;
/*f(x+1!=M&&x-1!=-1&&y+1!=N&&y-1!=-1)
if(a[x][y-1]||a[x][y+1]||a[x-1][y]||a[x+1][y])
return 1;
return 0;
else
return 1;
*/
if((x-1==-1&&y-1==-1&&a[x+1][y]==(1||2)&&a[x][y+1]==(1||2)))//1情况
return 0;
else if((y-1==-1&&a[x-1][y]==(1||2)&&a[x+1][y]==1||2&&a[x][y+1]==(1||2)))//2情况
return 0;
else if((x+1==M&&y-1==-1&&a[x-1][y]==(1||2)&&a[x][y+1]==(1||2)))//3情况
return 0;
else if((x-1==-1&&a[x+1][y]==(1||2)&&a[x][y-1]==(1||2)&&a[x][y+1]==(1||2)))//4情况
return 0;
else if((a[x-1][y]==(1||2)&&a[x+1][y]==(1||2)&&a[x][y-1]==(1||2)&&a[x][y+1]==(1||2)))//5情况
return 0;
else if((x+1==M&&a[x-1][y]==(1||2)&&a[x][y-1]==(1||2)&&a[x][y+1]==(1||2)))//6情况
return 0;
else if((x-1==-1&&y+1==N&&a[x+1][y]==(1||2)&&a[x][y-1]==(1||2)))//7情况
return 0;
else if((y+1==N&&a[x-1][y]==(1||2)&&a[x+1][y]==(1||2)&&a[x][y-1]==(1||2)))//8情况
return 0;
else if((x+1==M&&y+1==N&&a[x-1][y]==(1||2)&&a[x][y-1]==(1||2)))//9情况
return 0;
else return 1;
}
void LZ(int b[M][N])//设置路障函数 用户可以自行设置路障 路障点值为1
{
int top,x=0,y=0,i;
printf("请输入要路障的个数");
scanf("%d",&top);
printf("请输入要设为路障的坐标");