iniciar-programa
   define-nueva-instruccion arriba como
   inicio
      mientras no-orientado-al-norte hacer
         gira-izquierda;
      mientras frente-libre hacer
         avanza;
      gira-izquierda;
      mientras frente-libre hacer
         avanza;
      gira-izquierda;
      gira-izquierda;
   fin;
   define-nueva-instruccion recorre como
   inicio
      mientras  no-junto-a-zumbador hacer
      inicio
         mientras frente-libre y  no-junto-a-zumbador hacer
            avanza;
         si no-junto-a-zumbador entonces
         inicio
            gira-izquierda;
            gira-izquierda;
            mientras frente-libre hacer
               avanza;
            gira-izquierda;
            avanza;
            gira-izquierda;
         fin;
      fin;
   fin;
   define-nueva-instruccion coge como
   inicio
      si no-junto-a-zumbador entonces
      inicio
         inicio
             mientras frente-libre y  no-junto-a-zumbador hacer
                avanza;
             si junto-a-zumbador entonces
             inicio
                repetir 3 veces
                   coge-zumbador;
                si junto-a-zumbador entonces
                inicio
                   coge-zumbador;
                   coge;
                   deja-zumbador;
                fin
                sino
                   coge;
             fin
             sino
             inicio
                si derecha-libre entonces
                inicio
                   gira-izquierda;
                   gira-izquierda;
                   mientras frente-libre hacer
                      avanza;
                   gira-izquierda;
                   avanza;
                   gira-izquierda;
                   coge;
                fin
                sino
                inicio
                   gira-izquierda;
                   gira-izquierda;
                   mientras frente-libre hacer
                      avanza;
                fin;
             fin;
          fin;
      fin
      sino
      inicio
       repetir 3 veces
                coge-zumbador;
       si junto-a-zumbador entonces
       inicio
          coge-zumbador;
             coge;
             deja-zumbador;
       fin
       sino
          coge;
      fin;

   fin;
   define-nueva-instruccion dfs como
   inicio
      deja-zumbador;
      deja-zumbador;
      repetir 4 veces
      inicio
         si frente-libre entonces
         inicio
            avanza;
            si junto-a-zumbador entonces
            inicio
               coge-zumbador;
               si no-junto-a-zumbador entonces
               inicio
                  deja-zumbador;
                  dfs;
               fin
               sino
               inicio
                  coge-zumbador;
                  coge-zumbador;
                  si no-junto-a-zumbador entonces
                  inicio
                     repetir 3 veces
                       deja-zumbador;
                  fin
                  sino
                    repetir 7 veces
                       deja-zumbador;
                fin
            fin
            sino
               repetir 4 veces
                 deja-zumbador;
           gira-izquierda;
           gira-izquierda;
           avanza;
           gira-izquierda;
           gira-izquierda;
         fin;
         gira-izquierda;
      fin;
   fin;
    inicia-ejecucion
       arriba;
       recorre;
       dfs;
       arriba;
       coge;
        apagate;
    termina-ejecucion
finalizar-programa
