iniciar-programa
   define-nueva-instruccion re como inicio
      si frente-libre y no junto-a-zumbador entonces inicio
         avanza;
      re;
      si junto-a-zumbador entonces
         deja-zumbador;
     fin;
   fin;
   define-nueva-instruccion ult como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         si frente-libre entonces
            avanza;
         ult;
         deja-zumbador;
      fin
      sino inicio
         repetir 2 veces
            gira-izquierda;
         mientras frente-libre hacer
            avanza;
      fin;
   fin;
   define-nueva-instruccion deja como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         deja;
         deja-zumbador;
         si frente-libre entonces
            avanza;
      fin
      sino inicio
         repetir 2 veces
            gira-izquierda;
         mientras frente-libre hacer
            avanza;
         gira-izquierda;
         avanza;
         gira-izquierda;
      fin;
   fin;
   define-nueva-instruccion coge como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         coge;
         avanza;
      fin
      sino inicio
         gira-izquierda;
         gira-izquierda;
         mientras frente-libre hacer
            avanza;
         repetir 3 veces
            gira-izquierda;
         avanza;
         repetir 3 veces
            gira-izquierda;
      fin;

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