iniciar-programa
define-nueva-instruccion gira-derecha como inicio
repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion bloqueado como inicio
gira-derecha;
avanza;
gira-izquierda;
si frente-libre entonces avanza sino apagate;
gira-izquierda;
fin;
define-nueva-instruccion dejar como inicio
mientras no-junto-a-zumbador hacer inicio
si no-junto-a-zumbador entonces deja-zumbador;
si junto-a-zumbador entonces avanza;
fin;
fin;
define-nueva-instruccion clausurar como inicio
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
avanza;
deja-zumbador;
repetir 2 veces gira-izquierda;
avanza;
gira-derecha;
si frente-libre entonces inicio
mientras frente-libre hacer avanza;
gira-derecha;
avanza;
gira-derecha;
si no-junto-a-zumbador entonces deja-zumbador;
si frente-libre entonces inicio
si junto-a-zumbador entonces avanza;
fin;
mientras no-junto-a-zumbador hacer dejar;
repetir 2 veces gira-izquierda;
fin;
fin;
define-nueva-instruccion aprobar como inicio
gira-derecha;
avanza;
gira-izquierda;
si frente-libre entonces avanza sino apagate;
gira-izquierda;
fin;
define-nueva-instruccion buscar como inicio
si orientado-al-norte entonces inicio
mientras frente-libre hacer avanza;
gira-derecha;
fin;
si frente-libre entonces inicio
si no-junto-a-zumbador entonces avanza;
fin;
fin;
inicia-ejecucion
    mientras frente-libre hacer inicio
    si orientado-al-norte entonces buscar;
    si izquierda-bloqueada entonces si junto-a-zumbador entonces clausurar sino aprobar;
    si izquierda-bloqueada entonces si junto-a-zumbador entonces bloqueado;
    si orientado-al-este entonces inicio
    si frente-libre entonces inicio
    si junto-a-zumbador entonces avanza;
    si no-junto-a-zumbador entonces gira-izquierda;
    fin;
    fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
