iniciar-programa
define-nueva-instruccion construye como inicio
   mientras no orientado-al-este hacer gira-izquierda;
   mientras algun-zumbador-en-la-mochila hacer inicio
       deja-zumbador;
       avanza;
       si frente-bloqueado y orientado-al-este entonces inicio
           si algun-zumbador-en-la-mochila entonces deja-zumbador;
           gira-izquierda;
           avanza;
           gira-izquierda;
       fin;
       si frente-bloqueado y orientado-al-oeste entonces inicio
           si algun-zumbador-en-la-mochila entonces deja-zumbador;
           repetir 3 veces gira-izquierda;
           avanza;
           repetir 3 veces gira-izquierda;

       fin;
   fin;
fin;
    inicia-ejecucion
    mientras no orientado-al-este hacer gira-izquierda;
    mientras frente-libre hacer inicio
        avanza;
        si frente-bloqueado entonces gira-izquierda;
        si derecha-libre entonces inicio
              avanza;
              repetir 2 veces gira-izquierda;
               si junto-a-zumbador entonces coge-zumbador;
              avanza;
              repetir 2 veces gira-izquierda;
              gira-izquierda;
              mientras frente-libre hacer inicio
              si junto-a-zumbador entonces coge-zumbador;
              avanza;

                 si frente-bloqueado y orientado-al-este entonces repetir 2 veces gira-izquierda;

             si frente-bloqueado y orientado-al-oeste  entonces inicio

                gira-izquierda;
                si frente-libre entonces inicio
                avanza;
                gira-izquierda;
                fin;

             fin;

              fin;
        fin;
    fin;
   construye;
        apagate;
    termina-ejecucion
finalizar-programa
