RE:¿Una funcion recursiva que solucione un laberin
Antes que nada tienes que encontrar un estructura de datos donde puedas expresar un laberinto, lo mejor es usar un arreglo de 2 dimenciones tomando en cuenta que solo puedes ir arriba, abajo, derecha y izquierda. Para las paredes usaremos un 1 para los caminos o donde no hay pared usaremos 0 , para la salida usaremos 2 y los cominos donde ya pasaste pondremos 3.
Damos la pocision inicial en [x,y] y el resultado lo recibimos en los punteros *resultado_x y *resultado_y.
La funcion recursiva salir es asi:
void salir (int x,int y,int *resultado_x,int *resultado_y)
{
if(laberinto[x][y]==0) //camino libre
{
laberinto[x][y]=3;
salir(x+1,y,resultado_x,resultado_y);
salir(x-1,y,resultado_x,resultado_y);
salir(x,y+1,resultado_x,resultado_y);
salir(x,y-1,resultado_x,resultado_y);
}
if(laberinto[x][y]==1) //pared
{
return;
}
if(laberinto[x][y]==3) //ya estube aqui
{
return;
}
if(laberinto[x][y]==2) //encontre la salida
{
*resultado_x=x;
*resultado_y=y;
return;
}
}
Es esto solo una idea que espero te sirva y SUERTE.