iniciar-programa
define-nueva-instruccion gira(n) como
inicio
   repetir n veces
    inicio
       gira-izquierda;
    fin;
    fin;
 define-nueva-instruccion divide como
 inicio
 si frente-libre entonces avanza;
 si frente-libre entonces avanza;
 si frente-libre entonces
 inicio
 divide;
 fin
 sino
 inicio
 gira(2);
 fin;
 avanza;
 fin;




    inicia-ejecucion
    si frente-bloqueado entonces apagate; 

    mientras frente-libre y derecha-libre hacer inicio
    divide;
    gira(2);
    mientras no-junto-a-zumbador y frente-libre hacer avanza;

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




    si frente-bloqueado entonces inicio
    gira(2);
    mientras frente-libre hacer avanza;
    gira(1);
    avanza;
    gira(1);
    fin;

fin;

 mientras frente-libre  hacer inicio
 divide;
 gira(2);
    mientras no-junto-a-zumbador y frente-libre hacer avanza;

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



          mientras no-orientado-al-sur hacer gira(1);
          mientras frente-libre hacer avanza;
          gira(3);
          mientras frente-libre hacer avanza;
          gira(3);

         mientras frente-libre hacer inicio
         si junto-a-zumbador entonces inicio
         mientras junto-a-zumbador hacer coge-zumbador;
         deja-zumbador;
         fin;
         si junto-a-zumbador entonces avanza;
           si no junto-a-zumbador entonces   inicio
           gira(2);
           mientras frente-libre hacer avanza;
           gira(1);
          si frente-libre entonces inicio
          avanza;
          fin

         sino
           inicio
            apagate;

           fin;
           gira(1);
           fin;
           fin;








        apagate;
    termina-ejecucion
finalizar-programa

