Diez Avenidas con Vallas
Karel se encuentra en una competencia de carrera. Es necesario que recorra un camino que tiene vallas (obstáculos) hasta llegar al final donde se encuentra un beeper. Por lo tanto, es necesario que recorra la pista despegándose lo menos posible del piso. Problema Has un programa que lleve a Karel desde su punto inicial hasta la avenida que contiene un beeper.
• Karel inicia siempre al principio de la pista mirando al Este (dirección a la que corre) y pegado a la derecha.
• Karel siempre debe ir lo más apegado que pueda a la pared derecha.
• Las vallas siempre tiene están sobre las avenidas (verticales), son de longitud uno y no hay dos que estén en avenidas consecutivas.
• El número de vallas no esta determinado (no puedes saber cual es la configuración de las vallas).
• La longitud de la pista no esta determinada.
• La carrera termina cuando llega a un beeper.
iniciar-programa
define-nueva-instruccion sube como
inicio
gira-izquierda;
mientras derecha-bloqueada y frente-libre y no junto-a-zumbador hacer
inicio
avanza;
fin;
fin;
define-nueva-instruccion baja como
inicio
repetir 3 veces inicio
gira-izquierda;
fin;
avanza;
repetir 3 veces inicio
gira-izquierda;
fin;
avanza;
mientras derecha-bloqueada y frente-libre y no junto-a-zumbador hacer
inicio
avanza;
si frente-bloqueado y no orientado-al-este entonces
inicio
gira-izquierda;
fin;
fin;
fin;
define-nueva-instruccion hazlo como
inicio
mientras no-junto-a-zumbador y derecha-bloqueada y frente-libre hacer
inicio
avanza;
mientras frente-bloqueado hacer
inicio
sube;
mientras derecha-libre y frente-libre hacer
inicio
baja;
fin;
fin;
fin;
fin;
inicia-ejecucion
hazlo;
apagate;
termina-ejecucion
finalizar-programa
