iniciar-programa
define-nueva-instruccion orienta como inicio
mientras no orientado-al-sur hacer gira-izquierda;
mientras orientado-al-sur y frente-libre hacer avanza;
mientras izquierda-libre hacer gira-izquierda;
fin;
define-nueva-instruccion checa como inicio
mientras izquierda-bloqueada y no junto-a-zumbador hacer inicio
si izquierda-bloqueada y no junto-a-zumbador entonces repetir 3 veces gira-izquierda;
mientras frente-libre y no junto-a-zumbador hacer avanza;
si frente-bloqueado y no junto-a-zumbador entonces repetir 2 veces gira-izquierda;
mientras frente-libre y no junto-a-zumbador hacer avanza;
si frente-bloqueado y no junto-a-zumbador entonces repetir 3 veces gira-izquierda;
si (izquierda-bloqueada y frente-libre)y no junto-a-zumbador entonces avanza;
si (izquierda-bloqueada y frente-bloqueado)y no junto-a-zumbador entonces inicio
repetir 3 veces gira-izquierda;
fin;
fin;
si izquierda-libre y no junto-a-zumbador entonces inicio
si izquierda-libre entonces gira-izquierda;
si (no junto-a-zumbador y frente-libre)y izquierda-libre entonces avanza;
si izquierda-libre entonces gira-izquierda;
si (no junto-a-zumbador y frente-libre)y izquierda-libre entonces avanza;
fin;
fin;
inicia-ejecucion
    orienta;
    mientras no junto-a-zumbador hacer checa;
        apagate;
    termina-ejecucion
finalizar-programa
