iniciar-programa
   define-nueva-instruccion u como
   inicio
      repetir 2 veces
         gira-izquierda;
   fin;

    define-nueva-instruccion coge como
    inicio
       si junto-a-zumbador entonces
       inicio
          mientras junto-a-zumbador  hacer
             coge-zumbador;
          coge;
          deja-zumbador;
       fin
       sino
       inicio
           mientras frente-libre y no-junto-a-zumbador hacer
              avanza;
           si junto-a-zumbador entonces
              coge;
       fin;
    fin;
    define-nueva-instruccion principal como
    inicio
       si junto-a-zumbador entonces
       inicio
          coge-zumbador;
          si junto-a-zumbador entonces
          inicio
             principal;
             avanza;
          fin
          sino
             principal;

       fin
       sino
       inicio
          mientras frente-libre hacer
             avanza;
          repetir 3 veces
              gira-izquierda;
       fiN;

    fin;

    inicia-ejecucion
       mientras no orientado-al-este hacer
          gira-izquierda;
       mientras junto-a-zumbador o frente-libre hacer
       inicio
           mientras no-junto-a-zumbador y frente-libre hacer
             avanza;
           si junto-a-zumbador entonces
           inicio
               u;
               principal;
               deja-zumbador;
               u;
               mientras frente-libre hacer
                  avanza;
               gira-izquierda;
               si frente-libre entonces
               avanza;
           fin;
       fin;
       u;
       mientras frente-libre hacer
          avanza;
       repetir 3 veces
          gira-izquierda;
       mientras frente-libre hacer
          avanza;
       u;
       si no junto-a-zumbador entonces
          avanza;
       coge;
     apagate;
    termina-ejecucion
finalizar-programa
