iniciar-programa
define-nueva-instruccion gira(n) como
inicio
   repetir n veces
      gira-izquierda;
fin;
define-nueva-instruccion cuenta como
inicio
   si junto-a-zumbador entonces
   inicio
      coge-zumbador;
      cuenta;
      avanza;
   fin
   sino
   inicio
      gira(2);
      mientras frente-libre hacer
         avanza;
      gira(1);
      mientras frente-libre hacer
         avanza;
      gira(1);
   fin;
fin;
inicia-ejecucion
   mientras no-orientado-al-norte hacer
      gira-izquierda;
   mientras frente-libre y derecha-libre hacer
   inicio
      mientras frente-libre hacer
         avanza;
      gira(3);
      mientras no-orientado-al-norte y frente-libre hacer
      inicio
         mientras frente-libre y no-junto-a-zumbador hacer
            avanza;
         si junto-a-zumbador entonces
         inicio
           cuenta;
           gira(2);
           avanza;
           deja-zumbador;
           mientras frente-libre hacer
              avanza;
           gira(3);
         fin
         sino
         inicio
            si derecha-libre entonces
            inicio
               gira(2);
                mientras frente-libre hacer
                  avanza;
               gira(1);
               avanza;
               gira(1);
            fin
         fin;
      fin;
    fin;
    gira(2);
     mientras frente-libre hacer
        avanza;
     gira(1);
     avanza;
     gira(1);
     mientras frente-libre hacer
     inicio
        si junto-a-zumbador entonces
        inicio
           mientras junto-a-zumbador hacer
           inicio
              coge-zumbador;
              si junto-a-zumbador entonces
                  coge-zumbador
              sino
                gira(1);
           fin;
           si orientado-al-norte entonces
           inicio
              deja-zumbador;
              gira(3);
           fin;
        fin;
        avanza;
     fin;
     mientras algun-zumbador-en-la-mochila hacer
        deja-zumbador;
    gira(2);
    avanza;
    mientras frente-libre hacer
    inicio
       mientras junto-a-zumbador hacer
          coge-zumbador;
       avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer
        deja-zumbador;



    apagate;
    termina-ejecucion
finalizar-programa
