iniciar-programa
define-nueva-instruccion g(n) como
inicio
      repetir n veces
      gira-izquierda;
fin;
define-nueva-instruccion recorre como
inicio
   mientras no-orientado-al-este hacer
   inicio
     si junto-a-zumbador entonces
     coge-zumbador;
     si frente-libre entonces
     avanza
     sino
     inicio
           si orientado-al-norte entonces
           inicio
                 g(3);
                 si frente-libre entonces
                 inicio
                 avanza;
                 g(3);
                 fin;
           fin
           sino
           si orientado-al-sur entonces
           inicio
                 g(1);
                 si frente-libre entonces
                 inicio
                 avanza;
                 g(1);
                 fin;
           fin;
     fin;
   fin;
fin;
define-nueva-instruccion coge como
inicio
   mientras no-orientado-al-este hacer
   inicio
     si no-junto-a-zumbador entonces
     inicio
         repetir 100 veces
         deja-zumbador;
         apagate;
     fin;
     si frente-libre entonces
     avanza
     sino
     inicio
           si orientado-al-norte entonces
           inicio
                 g(3);
                 si frente-libre entonces
                 inicio
                 avanza;
                 g(3);
                 fin;
           fin
           sino
           si orientado-al-sur entonces
           inicio
                 g(1);
                 si frente-libre entonces
                 inicio
                 avanza;
                 g(1);
                 fin;
           fin;
     fin;
   fin;
fin;
    inicia-ejecucion

    mientras algun-zumbador-en-la-mochila  hacer
    inicio
       mientras no-orientado-al-oeste hacer
       g(1);
       mientras frente-libre hacer
       avanza;
       g(1);
       mientras frente-libre hacer
       avanza;
       mientras no-orientado-al-norte hacer
       g(1);
       recorre;
       mientras no-orientado-al-oeste hacer
       g(1);
       mientras frente-libre hacer
       avanza;
       g(1);
       mientras frente-libre hacer
       avanza;
       g(2);
       coge;

    fin;
        apagate;
    termina-ejecucion
finalizar-programa
