iniciar-programa
define-nueva-instruccion g(n) como
repetir n veces gira-izquierda;
define-nueva-instruccion paso (n) como
 inicio
     si no si-es-cero (n) entonces
         inicio
         si frente-libre entonces
         avanza
         sino
         inicio
             g(1);
             avanza;
         fin;
           repetir 50 veces
           inicio
               mientras no-junto-a-zumbador y frente-libre hacer
               avanza;
               si frente-bloqueado entonces
               g(1);
           fin;
           si junto-a-zumbador entonces
           paso(precede(n));
         fin;
 fin;
 define-nueva-instruccion regresa como
  inicio
      mientras no-orientado-al-oeste hacer
        gira-izquierda;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     mientras frente-libre hacer avanza;
     gira-izquierda;
  fin;
define-nueva-instruccion cuantos(n) como
  inicio
     si junto-a-zumbador y frente-libre entonces
     inicio
          coge-zumbador;
          cuantos(sucede(n));
     fin;
     paso(n);
     mientras junto-a-zumbador hacer
           cuantos(0);
     regresa;
     repetir n veces deja-zumbador;
     apagate;
  fin;
    inicia-ejecucion
     regresa;
     cuantos(0);
       apagate;
    termina-ejecucion
finalizar-programa
