#include<stdio.h>
int map[7][7] = {{2, 2, 2, 2, 2, 2, 2},
{2, 0, 0, 0, 0, 0, 2},
{2, 0, 2, 0, 2, 0, 2},
{2, 0, 0, 2, 0, 2, 2},
{2, 2, 0, 2, 0, 2, 2},
{2, 0, 0, 0, 0, 0, 2},
{2, 2, 2, 2, 2, 2, 2}};
int visit(int x, int y);
int success;
int start_x, start_y;
int end_x, end_y;
void main()
{
start_x = 1;
start_y = 1; // 시작지점
end_x = 5;
end_y = 5; // 최종도착지점
success = 0;
printf("미로 찾기\n");
if(!visit(1,1))
printf("출구를 찾을 수 없습니다.");
}
int visit(int x, int y)
{
map[x][y] = 1; // 지나간 위치를 표시
if( x == end_x && y == end_y) // 최종 도착지점
success = 1;
if( success == 0 && map[x][y+1] == 0)
visit(x, y+1);
if( success == 0 && map[x+1][y] == 0)
visit(x +1, y);
if( success == 0 && map[x][y-1] == 0)
visit(x, y -1);
if( success == 0 && map[x-1][y] == 0)
visit(x-1, y);
if(success == 1)
printf("(%d, %d)\n", x, y);
return success;
}