iniciar-programa
define-nueva-instruccion oeste como inicio
 mientras no-orientado-al-oeste hacer inicio
   gira-izquierda;
 fin;
fin;

define-nueva-instruccion sur como inicio
 mientras no-orientado-al-sur hacer inicio
   gira-izquierda;
 fin;
fin;

  define-nueva-instruccion norte como inicio
 mientras no-orientado-al-norte hacer inicio
   gira-izquierda;
 fin;
fin;

define-nueva-instruccion este como inicio
 mientras no-orientado-al-este hacer inicio
   gira-izquierda;
 fin;
fin;



    define-nueva-instruccion acomodate como inicio
             este;
             mientras no-junto-a-zumbador hacer avanza;
             norte;
             avanza;
             fin;

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


             define-nueva-instruccion poda2 como inicio
         mientras junto-a-zumbador y frente-libre hacer inicio
            coge-zumbador;
            avanza;
            fin;
            este;
            si no-junto-a-zumbador entonces inicio
               avanza;
               fin;

            norte;
            avanza;
            mientras junto-a-zumbador hacer inicio
               avanza;
            fin;
            sur;
            avanza;
            mientras junto-a-zumbador hacer inicio
            coge-zumbador;
            avanza;
            fin;
                      este;
            avanza;
            mientras no-junto-a-zumbador hacer inicio
            avanza;
            fin;
            avanza;
                 si no-junto-a-zumbador entonces inicio
               oeste;
               avanza;
               fin;
            fin;



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




     define-nueva-instruccion verifica como inicio
         mientras junto-a-zumbador hacer inicio
          este;
            avanza;
                  si junto-a-zumbador entonces inicio
             poda1;
             fin sino inicio
              oeste;
              avanza;
              avanza;
              fin;
          si junto-a-zumbador entonces inicio
             norte;
             avanza;
          si junto-a-zumbador entonces inicio
                 sur;
                 avanza;
                 oeste;
                 avanza;
                fin sino inicio
                 este;
                 avanza;
                 si junto-a-zumbador entonces inicio
                 oeste;
                 avanza;
                 sur;
                 avanza;
                 oeste;
                fin sino inicio
                   regresa;
                   apagate;
                  fin;
               fin;
                 si junto-a-zumbador entonces inicio
                poda2;
                fin;
             fin;
             si no-junto-a-zumbador entonces inicio
                 este;
                 avanza;
                 norte;
                 avanza;

                 fin;
                 fin;
                fin;




  inicia-ejecucion

  acomodate;
  verifica;
  regresa;

        apagate;
    termina-ejecucion
finalizar-programa
