 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 busca;

   define-nueva-instruccion busca como inicio
   mientras frente-libre y no junto-a-zumbador hacer avanza;
   si frente-bloqueado y orientado-al-norte entonces inicio
   media-vuelta; mientras frente-libre hacer avanza;
   gira-izquierda; avanza; gira-izquierda;
   busca;
   fin;
   fin;
   define-nueva-instruccion Todos como inicio
   mientras junto-a-zumbador hacer coge-zumbador;
   fin;

   define-nueva-instruccion recoge(n) como inicio
   repetir 4 veces inicio
   repetir n veces
   si no junto-a-zumbador entonces inicio
   avanza;
   fin sino
   si junto-a-zumbador entonces inicio
   Todos;
   si frente-libre entonces avanza;
   fin;
   si no junto-a-zumbador entonces inicio
   gira-derecha;
   fin sino
   si junto-a-zumbador entonces inicio
   Todos;
   gira-derecha;
   fin;
   fin;
   si no si-es-cero(n) entonces inicio
   avanza; avanza; gira-derecha; avanza; avanza; gira-izquierda;
   Recoge(precede(precede(precede(precede(n)))));
   fin;
   fin;

   define-nueva-instruccion mide(n) como inicio
   si frente-libre y junto-a-zumbador y orientado-al-este entonces inicio
   avanza;
   mide(sucede(n));
   fin sino
   si no junto-a-zumbador y frente-libre entonces inicio
   media-vuelta;
   repetir n veces avanza;
   gira-izquierda;
   avanza;
   gira-izquierda;
   avanza;
   Recoge(precede(precede(precede(n))));
   fin;

   si junto-a-zumbador y frente-bloqueado entonces inicio
   media-vuelta;
   mide(sucede(n));
   repetir n veces avanza;
   gira-izquierda;
   avanza;
   gira-izquierda; avanza;
   Recoge(precede(precede(n)));
   fin;
   fin;

   define-nueva-instruccion deja como inicio
   si junto-a-zumbador entonces inicio
   coge-zumbador;
   coge-zumbador;
   deja;
   deja-zumbador;
   fin;
   fin;

   inicia-ejecucion
    mientras no orientado-al-oeste hacer inicio gira-izquierda; fin;
    mientras frente-libre hacer inicio avanza; fin;
    gira-izquierda;
    mientras frente-libre hacer inicio avanza; fin;
    media-vuelta;
    busca;
    mientras junto-a-zumbador y frente-libre hacer avanza;
    si frente-libre entonces inicio
    media-vuelta;  avanza; gira-izquierda;
    fin;
   si frente-bloqueado entonces inicio
    media-vuelta;  gira-izquierda;
    fin;
    mide(0);
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    deja;





        apagate;
    termina-ejecucion
finalizar-programa
