iniciar-programa
define-nueva-instruccion g(n) como
  inicio
    repetir n veces gira-izquierda;
  fin;
 define-nueva-instruccion arriba como
    inicio
      mientras no-orientado-al-este hacer gira-izquierda;
      mientras frente-libre hacer avanza;
      gira-izquierda;
      mientras frente-libre hacer avanza;
      gira-izquierda;
    fin;
   define-nueva-instruccion v como
     inicio
      g(2);
      si frente-libre entonces avanza;
      g(2);
    fin;

    define-nueva-instruccion busca como
      inicio
       si no-junto-a-zumbador entonces
      repetir 2 veces deja-zumbador;
        repetir 4 veces
           inicio
             si frente-libre entonces
              inicio
                avanza;

             si no-junto-a-zumbador entonces
                 busca;

               v;

             fin;
            gira-izquierda;
         fin;

      fin;
     define-nueva-instruccion abajo como
        inicio
           mientras no-orientado-al-oeste hacer gira-izquierda;
           mientras frente-libre hacer avanza;
           gira-izquierda;
           mientras frente-libre hacer avanza;
           g(2);

        fin;
       define-nueva-instruccion pon como
         inicio
           abajo;
           deja-zumbador;

         fin;
     define-nueva-instruccion recorre como
       inicio
           mientras  frente-libre y junto-a-zumbador hacer
           avanza;

         si no-junto-a-zumbador entonces
             inicio
               busca;
               pon;
               arriba;
              fin;
           si frente-bloqueado entonces
              inicio
               g(2);
               mientras frente-libre hacer avanza;
               g(3);
               si frente-libre entonces avanza;
               g(3);
              fin;


       fin;

    inicia-ejecucion
     arriba;
     busca;
     abajo;
     mientras junto-a-zumbador hacer coge-zumbador;
     arriba;
     mientras izquierda-libre hacer
     recorre;






        apagate;
    termina-ejecucion
finalizar-programa
