C/Visual C - ¿Una funcion recursiva que solucione un laberinto?

 
Vista:

¿Una funcion recursiva que solucione un laberinto?

Publicado por Elizabeth (1 intervención) el 24/09/2001 07:34:59
Tengo una tarea que requiere solucionar de manera recursiva un laberinto ya definido, si acaso tienes alguna informacion por favor contactame

GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Una funcion recursiva que solucione un laberin

Publicado por emilio (42 intervenciones) el 24/09/2001 10:04:47
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar