/******************************************************************************
* author : kangquan@scut2008
*
* blog : http://blog.youkuaiyun.com/kangquan2008
*
* discription: 模拟走迷宫
*
*****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#define ROW 5
#define COL 5
char maze[ROW][COL] = { '0','1','1','1','1',
'0','0','1','1','1',
'1','0','1','1','1',
'1','0','0','0','1',
'1','1','1','0','0'};
int dir[][2] = {{0,1},{0,-1},
{1,0},{-1,0}};
void display_path()
{
for(int i=0; i<ROW; i++)
{
for(int j=0; j<COL; j++)
printf("%c ",maze[i][j]);
printf("\n");
}
}
void dfs(char (*maze)[COL], int x, int y)
{
//printf("x:%d,y:%d\n",x,y);
if(maze[x][y] == '0')
maze[x][y] = ' ';
else
return ;
if( x == COL-1 || y == ROW-1 )// already get out
{
display_path();
exit(EXIT_SUCCESS);
}
for(int i=0; i<4; i++)
{
int x_cord = x+dir[i][0];
int y_cord = y+dir[i][1];
if(x_cord >= 0 && x_cord < COL \
&& y_cord >=0 && y_cord < ROW)
{
dfs(maze,x_cord,y_cord);
}
}
maze[x][y] = '0';
}
int main()
{
dfs(maze,0,0);
return 0;
}
模拟迷宫 深搜
最新推荐文章于 2023-03-13 13:37:11 发布