Loco
2003-12-28 18:03:48 UTC
A ver, que esto está muy poco concurrido últimamente... para que os quebreis
un poco la cabeza, os presento una "chorradilla" que a mi me está dejando
las neuronas hipotecadas.
EL LABERINTO DEL LOCO
En la época clásica los griegos se tomaban la educación tan a pecho
que,según cuenta la leyenda, un profesor llamado Loco recluía en un
laberinto a sus alumnos más díscolos.
El laberinto tan solo tenía una salida a la cual sólo se podía acceder tras
resolver complicados problemas matemáticos, de tal manera que no eran pocos
los alumnos que perecían dentro del laberinto.
El laberinto estaba compuesto de habitaciones,muchas de ellas tenían tres
puertas que daban a otras tres habitaciones y otras eran habitaciones sin
salida.
Tenemos que realizar un programa que empezando por la habitación 0, vaya
buscando la salida a través de las puertas:
Primero pasa a la habitación a la que conduce la 1ª puerta y sigue buscando
la salida (abriendo puertas y entrando en las habitaciones...)
Si no encuentra la salida por ese camino vuelve hacia atrás y entra en la
habitación a la que conduce la tercera puerta.
Si no encuentra la salida por ninguna de las puertas(o la habitación no
tuviera puertas) volvería hacia atrás a la habitación por la que vino y
seguiría buscando por la puerta siguiente.
Representaremos el laberinto por una matriz de 20x3 en las que las filas
representan las habitaciones y las columnas son las habitaciones a la que
conducen las 3 puertas.
Ej)si la habitación 0 (fila 0), tiene estos valores: 1 2 4 significa que la
primera puerta conduce a la habitación 1, la segunda puerta conduce a la
habitación 2 y la tercera puerta conduce a la habitación 3.
Para representar una habitación que no tiene salida pondremos 100 100 100,
esto significa qu no conduce a ninguna habitación.
Para representar la puerta que conduce a la salida pondremos -1.
Los valores de la tabla que representan el laberinto son:
Int
laberinto[20][3]={1,2,4,5,3,11,100,100,100,100,100,100,6,3,1,100,100,100,5,7
,10,10,3,12,9,11,5,11,12,13,8,9,11,100,100,100,13,11,14,100,100,100,13,16,15
,13,11,16,19,13,18,19,13,-1,19,17,13,100,100,100};
El programa debe en cada momento ir informando de la busqueda, debe
escribier cuando entra en una habitación, indicando que habitacion es,
cuando abre una puerta y pasa a otra habitación, cuando se encuentra con una
habitación sin salida y cuando vuelve para atras para seguir buscando otro
camino.
El profesor Loco no era tan malo y según cuenta la leyenda siempre daba una
pista a sus alumnos antes de encerrarlos en el frío y lugubre laberinto...
"recursivoooo", les decia, "es mas fácil recursivoooooo"
Aunque las numerosas calaveras encontradas en excavaciones arqueológicas
parecen demostrar que, como suele ocurrir, los alumnos no le hacían
demasiado caso.
La cosa es que no me sale la maldita función esa, y mira que he gastado
folios y folios de planteamientos, pero la cosa no termina de cuadrar. Lo
máximo que he hecho en funciones recursivas es con dos caminos, pero tres no
llego a dominarlas, en especial en un caso como este. Al que se le vaya
ocurriendo alguna estructura, que la vaya poniendo, a modo de pista aunque
sea...
Loco.
un poco la cabeza, os presento una "chorradilla" que a mi me está dejando
las neuronas hipotecadas.
EL LABERINTO DEL LOCO
En la época clásica los griegos se tomaban la educación tan a pecho
que,según cuenta la leyenda, un profesor llamado Loco recluía en un
laberinto a sus alumnos más díscolos.
El laberinto tan solo tenía una salida a la cual sólo se podía acceder tras
resolver complicados problemas matemáticos, de tal manera que no eran pocos
los alumnos que perecían dentro del laberinto.
El laberinto estaba compuesto de habitaciones,muchas de ellas tenían tres
puertas que daban a otras tres habitaciones y otras eran habitaciones sin
salida.
Tenemos que realizar un programa que empezando por la habitación 0, vaya
buscando la salida a través de las puertas:
Primero pasa a la habitación a la que conduce la 1ª puerta y sigue buscando
la salida (abriendo puertas y entrando en las habitaciones...)
Si no encuentra la salida por ese camino vuelve hacia atrás y entra en la
habitación a la que conduce la tercera puerta.
Si no encuentra la salida por ninguna de las puertas(o la habitación no
tuviera puertas) volvería hacia atrás a la habitación por la que vino y
seguiría buscando por la puerta siguiente.
Representaremos el laberinto por una matriz de 20x3 en las que las filas
representan las habitaciones y las columnas son las habitaciones a la que
conducen las 3 puertas.
Ej)si la habitación 0 (fila 0), tiene estos valores: 1 2 4 significa que la
primera puerta conduce a la habitación 1, la segunda puerta conduce a la
habitación 2 y la tercera puerta conduce a la habitación 3.
Para representar una habitación que no tiene salida pondremos 100 100 100,
esto significa qu no conduce a ninguna habitación.
Para representar la puerta que conduce a la salida pondremos -1.
Los valores de la tabla que representan el laberinto son:
Int
laberinto[20][3]={1,2,4,5,3,11,100,100,100,100,100,100,6,3,1,100,100,100,5,7
,10,10,3,12,9,11,5,11,12,13,8,9,11,100,100,100,13,11,14,100,100,100,13,16,15
,13,11,16,19,13,18,19,13,-1,19,17,13,100,100,100};
El programa debe en cada momento ir informando de la busqueda, debe
escribier cuando entra en una habitación, indicando que habitacion es,
cuando abre una puerta y pasa a otra habitación, cuando se encuentra con una
habitación sin salida y cuando vuelve para atras para seguir buscando otro
camino.
El profesor Loco no era tan malo y según cuenta la leyenda siempre daba una
pista a sus alumnos antes de encerrarlos en el frío y lugubre laberinto...
"recursivoooo", les decia, "es mas fácil recursivoooooo"
Aunque las numerosas calaveras encontradas en excavaciones arqueológicas
parecen demostrar que, como suele ocurrir, los alumnos no le hacían
demasiado caso.
La cosa es que no me sale la maldita función esa, y mira que he gastado
folios y folios de planteamientos, pero la cosa no termina de cuadrar. Lo
máximo que he hecho en funciones recursivas es con dos caminos, pero tres no
llego a dominarlas, en especial en un caso como este. Al que se le vaya
ocurriendo alguna estructura, que la vaya poniendo, a modo de pista aunque
sea...
Loco.