iniciar-programa
   define-nueva-instruccion media-Vuelta como repetir 2 veces gira-izquierda;
   define-nueva-instruccion gira-Derecha como repetir 3 veces gira-izquierda;
 define-prototipo-instruccion uno(n);
 define-prototipo-instruccion Dos(n);
 define-prototipo-instruccion Compara(n);

 define-nueva-instruccion reparte como inicio
 mientras algun-zumbador-en-la-mochila hacer inicio
 deja-zumbador;
 si frente-libre entonces avanza;
 fin;
 apagate;
 fin;

 define-nueva-instruccion Uno(n) como inicio
 Si frente-libre y no junto-a-zumbador entonces inicio
 Avanza;
 Uno(sucede(n));
 Fin sino
 inicio
 Si junto-a-zumbador y frente-libre entonces inicio
 Media-vuelta;
 Repetir n veces avanza;
 Fin
 sino
 Si frente-bloqueado entonces inicio
 Media-vuelta;
 Repetir n veces avanza;
 Deja-zumbador;
 fin;
 fin;

  Repetir n veces
  Si algun-zumbador-en-la-mochila entonces inicio
  Deja-zumbador;
  Fin
  sino inicio
  Media-vuelta;
  Mientras junto-a-zumbador hacer inicio
  Coge-zumbador;
  Fin;
  Reparte;
  fin;

  Si algun-zumbador-en-la-mochila entonces inicio
  Mientras junto-a-zumbador hacer
  Coge-zumbador;
  Gira-izquierda; avanza; avanza;
  fin;

  Si ningun-zumbador-en-la-mochila entonces inicio
  media-vuelta;
  Mientras junto-a-zumbador hacer
  Coge-zumbador;
  Reparte;
  fin;

  Si no junto-a-zumbador entonces inicio
  Gira-izquierda;
  Dos(0);
  Fin
  sino si junto-a-zumbador entonces inicio
  Media-vuelta; avanza;
  Gira-derecha;
  avanza;
  Compara(0);
  fin;

  fin;

 define-nueva-instruccion Dos(n) como inicio
 Si frente-libre y no junto-a-zumbador entonces inicio
 Avanza;
 Dos(sucede(n));
 Fin sino
 inicio
 Si junto-a-zumbador y frente-libre entonces inicio
 Media-vuelta;
 Repetir n veces avanza;
 Fin sino
 Si frente-bloqueado entonces inicio
 Media-vuelta;
 Repetir n veces avanza;
 Deja-zumbador;
 fin;
 fin;

  Repetir n veces
  Si algun-zumbador-en-la-mochila entonces inicio
  Deja-zumbador;
  Fin
  sino inicio
  Media-vuelta;
  Mientras junto-a-zumbador hacer inicio
  Coge-zumbador;
  Fin;
  Reparte;
  fin;

  Si algun-zumbador-en-la-mochila entonces inicio
  Mientras junto-a-zumbador hacer
  Coge-zumbador;
  Gira-derecha; avanza; Gira-derecha;
  Avanza;
  Compara(0);
  fin;
  Si ningun-zumbador-en-la-mochila entonces inicio
  media-vuelta;
  Mientras junto-a-zumbador hacer
  Coge-zumbador;
  Reparte;
  fin;
 fin;


 define-nueva-instruccion compara(n) como inicio
  gira-izquierda;  avanza;
  si no junto-a-zumbador entonces inicio
  gira-derecha;
  Uno(n);
  fin
  sino si junto-a-zumbador entonces inicio
  media-vuelta;  avanza;
  fin;
  avanza;

  Si no junto-a-zumbador entonces inicio
  Gira-izquierda;
  Dos(n);
  fin
  sino si junto-a-zumbador entonces inicio
  media-vuelta;
  avanza;
  Gira-derecha; avanza;
  Compara(n);
  fin;

  fin;



  define-nueva-instruccion largo(n) como inicio
  si junto-a-zumbador entonces inicio
  coge-zumbador;
  si frente-libre entonces  inicio
  avanza;
  fin
  sino inicio
  media-vuelta;  repetir n veces avanza;   media-vuelta;
  compara(0);
  fin;
  largo(Sucede(n));
  fin
  sino inicio
  media-vuelta;
  repetir n veces avanza;
  fin;
  Media-vuelta;
  compara(0);
  fin;



    inicia-ejecucion
    largo(0);





        apagate;
    termina-ejecucion
finalizar-programa
