iniciar-programa
define-nueva-instruccion media-vuelta como inicio
gira-izquierda;
gira-izquierda;
fin;

define-nueva-instruccion gira-derecha como inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;

define-nueva-instruccion acomodarse como inicio
mientras no orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
gira-derecha;
si frente-bloqueado entonces inicio
gira-derecha;
fin
sino inicio
mientras frente-libre hacer avanza;
gira-derecha;
fin;
fin;

define-nueva-instruccion recorrido como inicio
mientras orientado-al-norte hacer inicio
mientras frente-libre hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
repetir 100 veces deja-zumbador;
apagate;
fin;
avanza;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
repetir 100 veces deja-zumbador;
apagate;
fin;
media-vuelta;
mientras frente-libre hacer avanza;
si izquierda-libre entonces inicio
gira-izquierda;
avanza;
gira-izquierda;
fin
sino inicio
acomodarse;
fin;
fin;
fin;

define-nueva-instruccion casa como inicio
si no(derecha-bloqueada y izquierda-bloqueada y frente-bloqueado) entonces inicio
acomodarse;
fin
sino inicio
repetir 100 veces deja-zumbador;
fin;
recorrido;
fin;

    inicia-ejecucion
        casa;
        apagate;
    termina-ejecucion
finalizar-programa
