iniciar-programa
define-nueva-instruccion gira-derecha como inicio
 repetir 3 veces
  gira-izquierda;
fin;
define-nueva-instruccion media-vuelta como inicio
 repetir 2 veces
  gira-izquierda;
fin;
define-nueva-instruccion come(x) como
inicio
 si junto-a-zumbador entonces
  inicio
   coge-zumbador;
   come(sucede(x));
   deja-zumbador;
  fin
  sino
  inicio
   repetir x veces
       avanza;
   media-vuelta;
   avanza;
   media-vuelta;
  fin;
fin;
define-nueva-instruccion delega(x) como
inicio
 si junto-a-zumbador entonces
  inicio
   coge-zumbador;
   delega(sucede(x));
   deja-zumbador;
  fin
  sino
  inicio
   repetir x veces
       avanza;
   si junto-a-zumbador entonces
       gira-izquierda;
  fin;
fin;
define-nueva-instruccion cuenta(x) como
inicio
 si frente-libre entonces
 inicio
  avanza;
  cuenta(sucede(x));
 fin
 sino inicio
 repetir x veces
  deja-zumbador;
 deja-zumbador;
fin;
fin;


    inicia-ejecucion
    gira-derecha;
    come(0);
    avanza;
    mientras no-junto-a-zumbador hacer
     avanza;
    media-vuelta;
    delega(0);
    mientras frente-libre hacer
    inicio
     avanza;
     mientras no-junto-a-zumbador hacer
      avanza;
     media-vuelta;
     delega(0);
    fin;
    gira-derecha;
    cuenta(0);

        apagate;
    termina-ejecucion
finalizar-programa
