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

define-nueva-instruccion sobrante como inicio
mientras no-orientado-al-este hacer inicio
    gira-izquierda;
fin;
mientras derecha-libre hacer inicio

            coge-zumbador;
            si frente-libre entonces inicio
            avanza;
            fiN;
            mientras no-orientado-al-sur hacer inicio
                gira-izquierda;
            fin;
            si frente-libre entonces inicio
                avanza;
            fin;
            mientras no-orientado-al-este hacer inicio
            gira-izquierda;
            fin;
fin;
si derecha-bloqueada entonces inicio
    coge-zumbador;
fin;
fin;

define-nueva-instruccion sedimarip como inicio
mientras no-orientado-al-norte hacer inicio
gira-izquierda;
fin;
si algun-zumbador-en-la-mochila entonces inicio
   deja-zumbador;
   fin;
   mientras izquierda-libre hacer inicio
   si algun-zumbador-en-la-mochila entonces inicio
   si frente-libre entonces inicio
       avanza;
       gira-izquierda;
       avanza;
       deja-zumbador;
    fin
    sino     inicio
        sobrante;
        apagate;
        fin;
 fin
 sino inicio
 sobrante;
apagate;
fin;
mientras no-orientado-al-norte hacer inicio
   gira-izquierda;
   fin;
fin;


media-vuelta;
mientras frente-libre hacer inicio
avanza;
fin;
mientras no-orientado-al-este hacer inicio
    gira-izquierda;
fin;
mientras junto-a-zumbador hacer inicio
si frente-libre entonces inicio
avanza;
fin
sino
apagate;
fin;
fin;
    inicia-ejecucion
    mientras no-orientado-al-norte hacer inicio
gira-izquierda;
fin;
    si algun-zumbador-en-la-mochila entonces inicio
   si no-junto-a-zumbador entonces inicio
deja-zumbador;
fin
sino inicio
apagate;
fin;
fin
sino inicio
apagate;
fin;
Mientras no-orientado-al-este hacer inicio
gira-izquierda;
fin;
si frente-libre entonces inicio
avanza;
fin;
mientras algun-zumbador-en-la-mochila hacer inicio
sedimarip;
fin;
apagate;
    termina-ejecucion
finalizar-programa
