首页 > 代码库 > 走迷宫问题
走迷宫问题
一个10*10的迷宫,每一个格子里面存0或者1,0代表可以走,1代表障碍。
输入值:起始坐标
输出值:能否达到设定的目标坐标点(Bool型变量,1或者0)
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define EX 2 5 #define EY 2 6 bool findpath = false; 7 int DX[4]={-1,1,0,0}; 8 int DY[4]={0,0,-1,1}; 9 int maze[10][10]={{0,0,0,1,1,1,1,1,1,1},{1,0,1,1,1,1,1,1,1,1},{1,0,0,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1,1},{0,1,1,0,1,0,0,1,1},{0,1,1,0,1,0,0,1,1},{0,1,1,0,1,0,0,1,1},{0,1,1,0,1,0,0,1,1},{0,1,1,0,1,0,0,1,1},{0,0,0,0,0,0,0,1,1,1}}; 10 int count; 11 12 void DFS(int x,int y){ 13 if(x==EX&&y==EY){ 14 findpath = true; 15 count++; 16 return; 17 } 18 for(int i=0;i<4;i++){ 19 int NX = x +DX[i]; 20 int NY = y +DY[i]; 21 if(NX<=10&&NY<=10&&NX>=0&&NY>=0&&maze[NX][NY]==0) 22 { 23 int tmp = maze[NX][NY]; 24 maze[NX][NY] = 2; 25 DFS(NX,NY); 26 maze[NX][NY] = tmp; 27 } 28 29 } 30 } 31 32 int main(){ 33 34 DFS(0,0); 35 printf("%d\n",findpath); 36 printf("%d\n",count); 37 system("pause"); 38 }
走迷宫问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。