有一个N*M的格子迷宫,1代表该格子为墙,不能通过,0代表可以通过,另外,在迷宫中 有一些传送门,走到传送门的入口即会自动被传送到传送门的出口(一次传送算1步)。人在迷宫中可以尝试 上下左右四个方向移

 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int MAX_N = 100;
const int MAX_M = 100;
const int INF = 0;
typedef pair P;
char maze[MAX_N][MAX_M + 1];
void bfs()
{
     int d[MAX_N][MAX_M];//储存起点到某一点的距离
     int dx[4] = { 1,0,-1,0 }, dy[4] = { 0,1,0,-1 };//表明每次x和y方向的位移
     int c1[100],r1[100],c2[100],r2[100];//传送门入口,出口坐标
     int sr,sc,er,ec;//起点,终点坐标
     int a,b,c,i,j,flag;
      int nx ,ny;//移动后的坐标
     cin>>a>>b;
     for(i=0;i>maze[i][j];
        }
     }
     cin>>c;
      for(i=0;i>c1[i]>>r1[i]>>c2[i]>>r2[i];//传送门入口,出口坐标
      }
      cin>>sr>>sc>>er>>ec;//起点,终点坐标
      queue

que; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { d[i][j] = 0; } } if(sr==er&&sc==ec) { cout<<"0"<>x; for(i=0;i

 

你可能感兴趣的:(华农计算智能)