iniciar-programa
   define-nueva-instruccion gira(n) como
   inicio
     repetir n veces
        gira-izquierda;
   fin;
   define-nueva-instruccion lleva como
   inicio
      gira(2);
      avanza;
      deja-zumbador;
      gira(2);
      avanza;
   fin;
   define-nueva-instruccion recoge como
   inicio
      repetir 4 veces
      inicio
           si frente-libre entonces
            inicio
               avanza;
               si junto-a-zumbador entonces
               inicio
                  coge-zumbador;
                  si junto-a-zumbador entonces
                  inicio
                     coge-zumbador;
                     si no-junto-a-zumbador entonces
                     inicio
                        deja-zumbador;
                        recoge;
                     fin
                     sino
                     inicio
                        coge-zumbador;
                        si no-junto-a-zumbador entonces
                        inicio
                           deja-zumbador;
                           recoge;
                        fin
                        sino
                        inicio
                           coge-zumbador;
                           si no-junto-a-zumbador entonces
                           inicio
                              deja-zumbador;
                              recoge;
                           fin
                           sino
                           inicio
                              mientras junto-a-zumbador hacer
                                  coge-zumbador;
                              recoge;
                           fin;
                       fin;
                    fin;
                 fin
                 sino
                     deja-zumbador;
               fin;
               gira(2);
               avanza;
               gira(2);
            fin;
            gira-izquierda;
      fin;
   fin;
   define-nueva-instruccion dfs como
   inicio
      si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces
         coge-zumbador
     sino
     repetir 4 veces
      inicio
           si frente-libre entonces
            inicio
               avanza;
               si junto-a-zumbador entonces
               inicio
                  lleva;
                  coge-zumbador;
                  si no-junto-a-zumbador entonces
                  inicio
                     deja-zumbador;
                     dfs;
                  fin
                  sino
                     deja-zumbador;
              fin;
              gira(2);
              avanza;
              gira(2);
            fin;
            gira-izquierda;
      fin;
   fin;
    inicia-ejecucion
       dfs;
       recoge;
       apagate;
    termina-ejecucion
finalizar-programa
