 iniciar-programa
  define-nueva-instruccion media-Vuelta como inicio
   repetir 2 veces gira-izquierda;
  fin;

  define-nueva-instruccion gira-Derecha como inicio
   repetir 3 veces gira-izquierda;
  fin;
  define-nueva-instruccion Copia(n) Como
  inicio
   Si junto-a-zumbador entonces inicio
   Coge-zumbador;
   Copia(sucede(n));
   Fin
   sino
   inicio
   Gira-izquierda;
   Repetir n veces deja-zumbador; avanza;
   Repetir 2 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 3 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 4 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 5 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 6 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 7 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 8 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 9 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 10 veces
   Repetir n veces deja-zumbador; avanza;
   repetir 11 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 12 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 13 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 14 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 15 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 16 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 17 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 18 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 19 veces
   Repetir n veces deja-zumbador; avanza;
   Repetir 20 veces
   Repetir n veces deja-zumbador; avanza;
   fin;
   fin;
 Define-prototipo-instruccion coge(n);

 Define-nueva-instruccion pista(k) como inicio
 si junto-a-zumbador entonces inicio
 Coge-zumbador;
 Pista(sucede(k));
 Fin sino inicio
 media-vuelta;
 avanza;
 gira-derecha;
 repetir k veces deja-zumbador;
 fin;
 Fin;


 Define-nueva-instruccion Compara(n) como inicio
 repetir n veces
 Si junto-a-zumbador entonces inicio
 Coge-zumbador;
 gira-derecha; avanza;
 Deja-zumbador;
 media-vuelta;  avanza;
 gira-derecha;
 fin
 Sino inicio
 gira-derecha; avanza;
 Pista(0);
 Avanza;
 compara(n);
 fin;

 Gira-derecha; avanza;
 mientras junto-a-zumbador hacer coge-zumbador;
 Media-vuelta; avanza; gira-derecha;


 si junto-a-zumbador entonces inicio
 Repetir n veces inicio
 deja-zumbador;
 fin;
 media-vuelta;
 mientras frente-libre hacer avanza;
 gira-derecha;
 avanza;
 gira-derecha;
 mientras no junto-a-zumbador hacer avanza;
 Gira-derecha;
 Coge(0);
 fin;

 si no junto-a-zumbador entonces inicio
 Media-vuelta;
 mientras frente-libre hacer avanza;
 Gira-izquierda;
 avanza;
 mientras junto-a-zumbador hacer coge-zumbador;
 repetir n veces deja-zumbador;
 apagate;
 fin;

 fin;

 Define-nueva-instruccion coge(n) como inicio
  si junto-a-zumbador entonces inicio
  Coge-zumbador;
  Coge(sucede(n));
  fin sino inicio
  Gira-derecha;
  Mientras frente-libre hacer inicio avanza; fin;
  gira-izquierda; avanza; gira-izquierda;
  Compara(n);
  fin;
  fin;




    inicia-ejecucion
    mientras no orientado-al-oeste hacer inicio gira-izquierda;  fin;
    mientras frente-libre hacer inicio avanza; fin;
    si frente-bloqueado entonces inicio gira-izquierda; fin;
    mientras frente-libre hacer inicio avanza; fin;
    gira-izquierda;
    copia(0);
    media-vuelta;
    mientras frente-libre hacer avanza;
    gira-izquierda; avanza;
    Copia(0);
    media-vuelta;
    mientras frente-libre hacer avanza;
    gira-derecha; avanza;
    media-vuelta;
    Coge(0);

        apagate;
    termina-ejecucion
finalizar-programa

 