iniciar-programa
define-nueva-instruccion delante como
inicio
   si frente-libre y no junto-a-zumbador entonces
   inicio
     avanza;
     delante;
     si junto-a-zumbador entonces
     deja-zumbador;
   fin;
fin;
define-nueva-instruccion final como
inicio
   si junto-a-zumbador entonces
   inicio
     coge-zumbador;
     si frente-libre entonces
        avanza;
     final;
     deja-zumbador;
   fin
   sino
   inicio
      gira-izquierda;
      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
      gira-izquierda;
      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;
      gira-izquierda;
      gira-izquierda;
      avanza;
      gira-izquierda;
       mientras frente-libre hacer
       inicio
          si junto-a-zumbador entonces
          inicio
             coge-zumbador;
             si frente-libre entonces
             inicio
                avanza;
                delante;
                si frente-libre entonces
                deja-zumbador;
             fin;
          fin;
          mientras no-junto-a-zumbador y frente-libre hacer
            avanza;
       fin;
       gira-izquierda;
       gira-izquierda;
       mientras frente-libre hacer
       inicio
          si junto-a-zumbador entonces
          inicio
             deja;
             gira-izquierda;
             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;
       gira-izquierda;
       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;
          gira-izquierda;
          gira-izquierda;
          mientras frente-libre hacer
             avanza;
          gira-izquierda;
          gira-izquierda;
          coge-zumbador;
       fin;
       deja-zumbador;
       final;
       apagate;
    termina-ejecucion
finalizar-programa
