domingo, 6 de mayo de 2007

Ejercicios Karel

Bueno aqui hay algunos de los problemas de karel.

1.OBSTACULOS: Karel, ubicado en el origen y mirando al este, debe saltar diferentes obstáculos de paredes, hasta encontrar un zumbador que le
indica el final de su carrera de obstáculos.
Vea la solucion del primer problema AQUI

2.PAR O IMPAR: Karel parado en una cuadra cualquiera, debe indicar con la dirección, si la cantidad de zumbadores sobre dicha esquina es par o
impar. Para este caso Karel no podrá moverse de la cuadra en la que
esta ubicado.
Vea la solucion del segundo problema AQUI

Bueno aqui les mostre unos ejemplos muy sencillos, pero ahora voy a colocar unos ejercicios como reto para la gente que visita mi blog...
Los retos son los siguientes

Reto 1 Historia

En Beeperópolis han construido su primera autopista. La autopista esta delimitada por paredes y atraviesa la ciudad de norte a sur, debido a las irregularidades del terreno, el ancho de la autopista varía a lo largo de la misma.

Sin embargo, los habitantes tienen un grave problema ya que no cuentan con la línea central que divide los carriles de ida y de vuelta. Afortunadamente Karel es jefe de tránsito y siempre esta dispuesto a resolver los problemas de Beeperopolis, por lo que se ha dado a la tarea de dibujar dicha línea.

Problema

Ayuda a Karel a poner la línea divisoria en la autopista, esta será formada por zumbadores y deberá dividir por la mitad la autopista desde el norte hasta el sur.

No debe de quedar ningún zumbador en una posición que no pertenezca a la línea divisoria. En cada posición de la línea divisoria, deberá haber únicamente un zumbador.

Consideraciones

Karel lleva un número INFINITO de zumbadores en su mochila.
Karel inicia en cualquier lugar del extremo norte de la autopista con dirección al sur.
No hay paredes ni zumbadores dentro de la autopista.
En cualquier fila de la autopista, el espacio entre ambas paredes es un número impar desconocido.
La línea deberá estar formada por montones de 1 zumbador y deberá ser de ancho 1 y no deberá haber zumbadores en ningún otro lugar de la autopista.
No importa la posición ni orientación final de Karel.

Mirar posicion de ejemplo y final de Karel

Reto 2 Historia

Como era costumbre Gretel salió desde temprano (como a la 6 a.m.) al bosque en busca de beeperleñas. Un poco más tarde (por eso de las 10 a.m.) salio Karel con el mismo propósito. Conociendo a Karel, Gretel tiene la sana costumbre de dejar beepers por donde ha pasado. Para la mala suerte de Karel, una beeperave (un pájaro que come beepers) ha comido muchos beepers del camino aunque dejó los suficientes para que Karel pueda reconstruir el camino y encontrar a Gretel (era buena onda la beeperave).

El camino que dejo Gretel (antes que pasara la beeperave) esta hecho de manera que cada beeper está a sólo un paso del anterior y del siguiente (más no se sabe en que dirección) y no hay caminos que se cruzan. Además, no hay paredes sobre el camino y si se da un paso en la dirección equivocada, nunca habrá un beeper ahí. No hay pared a un paso del camino.

Problema

Debes encontrar un algoritmo para que Karel reconstruya el camino de beepers que dejo Gretel, es decir, debes rellenar de nuevo el camino donde falten beepers.

Consideraciones

Inicialmente Karel se encuentra sobre el primer beeper.
Las discontinuidades, en el camino de beepers, siempre están entre un par de beepers alineados del camino y no se sabe el largo de la discontinuidad.
Karel topará con Pared si equivoca la dirección.
Karel termina si se topa con pared antes de un beeper, en cualesquiera de las direcciones disponibles (sin contar de donde viene) que tiene.
Karel debe terminar en el último beeper del camino con cualquier orientación.
Karel tiene suficientes beepers para colocar. Al menos, los que requiere el camino.
Karel está dando la espalda a un lugar donde no hay camino.

Vea el mapa aqui

Reto 3 Historia

El Kapitán Karel Sparrow en su última aventura a bordo de su barco llamado beeper Negra, encontró un mapa de un tesoro. El mapa estaba codificado de manera que en cada posición había un señalamiento con un determinado número de beepers. Ningún beeper significa que debe dar un paso al norte, un beeper significa un paso al oeste, dos beepers significan un paso al sur y por último 3 beepers significan un paso al este.

El tesoro se encuentra en una cruz de paredes. Si el mapa indica avanzar hacia una pared, significa que el tesoro se encuentra en ese lugar.

Problema

Escribe un programa que lleve a Karel hasta la cruz de paredes en la que se encuentra el tesoro. Tu paso por el camino indicado no debe dejar rastro. Es decir, no debes dejar beepers.

Consideraciones

Debes seguir los señalamientos del mapa para encontrar la cruz apropiada, ya que puede haber varias cruces en la isla, y sólo una tiene el tesoro.
Inicias sobre la primera instrucción del mapa.
No sabes la orientación inicial de Karel.
Cada señal debe ser removida después de pasar por ella.
Debes terminar frente a la cruz sin importar la orientación de Karel.

Vea los mapas de ejemplo aqui

Quien es el "duro" que va a resolver los retos???
Espero respuestas a los retos...