iniciar-programa
define-nueva-instruccion cuenta(n) como inicio
 si frente-libre entonces inicio
  mientras frente-libre hacer inicio
   avanza;
   si junto-a-zumbador entonces inicio
     coge-zumbador;
     cuenta(sucede(n));
   fin
   sino
     cuenta(n);
  fin;
 fin
 sino inicio
   gira-iZquierda;
   gira-izquierda;
   mientras frente-libre hacer
     avanza;
   gira-izquierda;
   avanza;
   repetir n veces
     deja-zumbador;
   apagate;
 fin;
fin;
define-nueva-instruccion paro(n) como inicio
 si frente-libre y orientado-al-oeste entonces inicio
  avanza;
  si no-junto-a-zumbador y orientado-al-oeste entonces
    paro(1)
  sino inicio
    mientras frente-libre hacer
      avanza;
    paro(0);
  fin;
 fin
 sino
   repetir n veces inicio
     repetir 3 veces
       gira-izquierda;
     avanza;
     repetir 3 veces
       gira-izquierda;
     si junto-a-zumbador entonces inicio
       coge-zumbador;
       cuenta(1);
     fin
     sino
       cuenta(0);
   fin;
fin;
define-nueva-instruccion pasos como inicio
mientras frente-libre hacer inicio
  si junto-a-zumbador entonces inicio
    coge-zumbador;
    si no junto-a-zumbador y orientado-al-este entonces inicio
      gira-izquierda;
      avanza;
      deja-zumbador;
      gira-izquierda;
      gira-izquierda;
      avanza;            
      gira-izquierda;
      gira-izquierda;
    fin;
   fin;
    si no-orientado-al-este entonces inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
      si frente-libre entonces inicio
        avanza;
        gira-izquierda;
      fin;
    fin
    sino
      avanza;
 fin;
gira-izquierda;
gira-izquierda;
mientras frente-libre hacer inicio
 si no-junto-a-zumbador entonces
  paro(1)
 sino
  paro(0);
fin;
gira-izquierda;
gira-izquierda;
pasos;
fin;
    inicia-ejecucion
    si junto-a-zumbador entonces inicio
      pasos;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
