iniciar-programa
define-nueva-instruccion g(n) como
inicio
repetir n veces
inicio
gira-izquierda;
fin;
fin;
     define-nueva-instruccion adelante como
     inicio
       si frente-libre entonces
       inicio
       avanza;
       fin
       sino
       inicio
         si izquierda-libre entonces
         inicio
         gira-izquierda;
         avanza;
         gira-izquierda;
         mientras frente-libre hacer
         avanza;
         g(2);
         fin
         sino
         inicio
         si izquierda-bloqueada y frente-bloqueado entonces
         inicio
          g(2);
          mientras frente-libre hacer
          avanza;
          gira-izquierda;
          mientras frente-libre hacer
          avanza;
          gira-izquierda;
         fin;
         fin;
       fin;
     fin;
  define-nueva-instruccion busca como
  inicio
     si junto-a-zumbador entonces
     inicio
       coge-zumbador;
        si no-junto-a-zumbador entonces
        inicio
          repetir 100 veces
          deja-zumbador;
          apagate;
        fin;
       adelante;
       busca;
     fin
     sino
     inicio
     repetir 100 veces
     deja-zumbador;
     apagate;
     fin;
  fin;
    inicia-ejecucion
      si orientado-al-este entonces
      gira-izquierda;
      si orientado-al-oeste entonces
      g(3);
      si orientado-al-norte entonces
      g(2);
      mientras frente-libre hacer
      avanza;
      g(3);
      mientras frente-libre hacer
      avanza;
      g(2);
         busca;
        apagate;
    termina-ejecucion
finalizar-programa
