iniciar-programa

define-nueva-instruccion camina como inicio
mientras junto-a-zumbador hacer inicio
         avanza;
         fin;
fin;

    define-nueva-instruccion gira(n) como inicio
               repetir n veces inicio
                   gira-izquierda;
                       fin;
                               fin;

   define-nueva-instruccion recoje (n) como inicio
   repetir sucede (n) veces inicio
  si junto-a-zumbador y orientado-al-norte entonces inicio
  coge-zumbador;
  fin
  sino inicio
  mientras algun-zumbador-en-la-mochila hacer inicio
  deja-zumbador;
  fin;
 si orientado-al-norte entonces inicio
 gira(1);
fin;
fin;
   fin;       
   fin;

define-nueva-instruccion dejar (m) como inicio
repetir precede (m) veces inicio
deja-zumbador;
fin;
fin;






        inicia-ejecucion
   avanza;
   gira(3);
   mientras no junto-a-zumbador hacer inicio
   avanza;
   fin;
   gira(1);

   mientras junto-a-zumbador hacer inicio
       camina;
       gira(2);
     mientras frente-libre hacer inicio
       mientras junto-a-zumbador hacer inicio
         coge-zumbador;
         fin;
     avanza;
     fin;
     si frente-bloqueado entonces inicio
     mientras algun-zumbador-en-la-mochila hacer inicio
     deja-zumbador;
     fin;
     fin;
      gira(1);
      avanza;
      gira(1);
         fin;
             gira(1);
             avanza;
             gira(3);
              mientras junto-a-zumbador hacer inicio
                 recoje(9);

                 si algun-zumbador-en-la-mochila entonces inicio
                  avanza;
                  dejar(10);
                  gira(2);
                  avanza;
                  gira(3);
                  avanza;
                  deja-zumbador;
                  gira(2);
                  avanza;
                  gira(1);
                  fin;

                  si orientado-al-oeste entonces inicio
                 avanza;
                 gira(3);
                 fin;

                 si no junto-a-zumbador entonces inicio
                     gira(1);
                     avanza;
                     gira(3);
                     fin;
                  fin;



        apagate;
    termina-ejecucion
finalizar-programa
