            iniciar-programa
  define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
  define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;
  define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
  define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion acomodar como
    inicio
        si frente-bloqueado y no junto-a-zumbador entonces apagate;
        oeste;
        mientras junto-a-zumbador hacer avanza;
        este;
        si frente-libre entonces avanza;
        oeste;
        mientras junto-a-zumbador hacer coge-zumbador;
        mientras frente-libre hacer avanza;
        este;
        repetir 2 veces avanza;
        si no junto-a-zumbador entonces
            inicio
                mientras algun-zumbador-en-la-mochila hacer deja-zumbador;

            fin sino
                inicio
                    mientras junto-a-zumbador hacer avanza;
                     mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                fin;
         si junto-a-zumbador entonces avanza;
         mientras frente-libre hacer avanza;

                acomodar;
    fin;
define-nueva-instruccion ultimo como
    inicio
         mientras no junto-a-zumbador y frente-libre hacer avanza;
         mientras junto-a-zumbador y frente-libre hacer avanza;
         si frente-bloqueado y junto-a-zumbador entonces
             inicio
                 norte;
                 apagate;
             fin;
         mientras no junto-a-zumbador y frente-libre hacer avanza;
         si frente-bloqueado y no junto-a-zumbador entonces
             inicio
                 norte;
                 apagate;
             fin;
         mientras junto-a-zumbador hacer coge-zumbador;
         oeste;
         mientras no junto-a-zumbador hacer avanza;
         este;
         si frente-libre entonces avanza;
         mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
         ultimo;
    fin;

define-nueva-instruccion llevar como
    inicio
        norte;
        mientras frente-libre hacer avanza;
        oeste;
        mientras frente-libre hacer avanza;
        sur;
        mientras no junto-a-zumbador y frente-libre hacer avanza;
        si frente-bloqueado y junto-a-zumbador  entonces
            inicio
                sal-de-instruccion;

            fin;
        si frente-bloqueado y no junto-a-zumbador entonces
            inicio
                este;
                mientras no junto-a-zumbador y frente-libre hacer avanza;
                mientras junto-a-zumbador hacer coge-zumbador;
                oeste;
                mientras frente-libre hacer avanza;
                este;
                repetir 2 veces si frente-libre entonces avanza;
                mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                oeste;
                mientras frente-libre hacer avanza;
                este;
                ultimo;


            fin;
    fin;

  define-nueva-instruccion dejar como
      inicio
          si frente-libre y junto-a-zumbador entonces avanza;
          si frente-libre y no junto-a-zumbador entonces
              inicio
                  mientras no junto-a-zumbador y frente-libre hacer avanza;
                  si frente-bloqueado y no junto-a-zumbador entonces
                      inicio
                          mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                      fin sino
                          inicio
                                oeste;
                                  mientras junto-a-zumbador hacer avanza;
                                  este;
                                  mientras  algun-zumbador-en-la-mochila hacer deja-zumbador;
                                   mientras frente-libre hacer avanza;
                          fin;
              fin sino
                  inicio
                      este;
                             inicio
                                 si no junto-a-zumbador y ningun-zumbador-en-la-mochila entonces acomodar;
                                 coge-zumbador;
                                 repetir 2 veces avanza;
                                 deja-zumbador;

                             fin;
                      mientras junto-a-zumbador hacer avanza;
                      este;
                      mientras no junto-a-zumbador y algun-zumbador-en-la-mochila hacer deja-zumbador;
                      mientras frente-libre hacer avanza;
                      si frente-bloqueado y junto-a-zumbador y ningun-zumbador-en-la-mochila entonces acomodar;
                  fin;
      fin;

 define-nueva-instruccion limpiar como
     inicio
         si frente-bloqueado y junto-a-zumbador entonces
             inicio
                 coge-zumbador;
                 este;
                 sal-de-instruccion;
             fin;
         si junto-a-zumbador  entonces
             inicio
                 coge-zumbador;
                 si frente-libre entonces avanza;
                 si frente-bloqueado y junto-a-zumbador entonces
                     inicio
                         si junto-a-zumbador y ningun-zumbador-en-la-mochila entonces
                             inicio
                                 coge-zumbador;
                                 repetir 2 veces avanza;
                                 deja-zumbador;
                                 apagate;
                             fin sino
                                 inicio

                                 fin;
                         este;

                     fin;
                 limpiar;
             fin;
     fin;
define-nueva-instruccion todo2 como
    inicio
       llevar;
       limpiar;
       dejar;
       todo2;
    fin;


define-nueva-instruccion regresar como
    inicio
         mientras junto-a-zumbador y frente-libre  hacer avanza;
         si no junto-a-zumbador entonces sur;
         mientras frente-libre hacer avanza;
         este;
         si junto-a-zumbador y frente-libre entonces avanza;
         mientras no junto-a-zumbador y frente-libre  hacer avanza;
         si frente-bloqueado y no junto-a-zumbador entonces
             inicio
                 todo2;
             fin;
         norte;
     fin;




define-nueva-instruccion juntarydejar1 como
          inicio
               si junto-a-zumbador entonces
                   inicio
                       coge-zumbador;
                       juntarydejar1;
                       deja-zumbador;
                       si frente-libre entonces avanza;

                   fin sino
                       inicio
                         oeste;
                         mientras frente-libre hacer avanza;
                         norte;



                       fin;

             fin;
   define-nueva-instruccion todo como
       inicio
           juntarydejar1;
           regresar;
           todo;
       fin;

   inicia-ejecucion
   norte;
   si no junto-a-zumbador entonces
       inicio
           apagate;
       fin;
  mientras junto-a-zumbador hacer coge-zumbador;
 si frente-libre entonces avanza;
 este;
 si frente-libre entonces avanza;
 oeste;
 mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
 si frente-libre entonces avanza;
 sur;
 si frente-libre entonces avanzA;
 este;
 mientras no junto-a-zumbador hacer avanza;
 norte;
 todo;
 todo2;

        apagate;
    termina-ejecucion
finalizar-programa


