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-nueva-instruccion  mide como inicio
   Si junto-a-zumbador entonces inicio
   mientras  junto-a-zumbador hacer coge-zumbador;
   mide;
   fin;
   si frente-libre y no junto-a-zumbador entonces inicio
   avanza;
   mide;
   fin;
  si frente-bloqueado y orientado-al-norte  entonces
  inicio
  media-vuelta;
  mientras frente-libre hacer avanza;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  gira-izquierda;
  Si frente-libre entonces inicio
  avanza;
  gira-izquierda;
  fin;

  si junto-a-zumbador  y orientado-al-norte  entonces inicio
  mide;
  fin
  sino si no junto-a-zumbador entonces inicio
  mientras no orientado-al-oeste hacer gira-izquierda;
  mientras frente-libre hacer avanza;
  fin;
  fin;
  fin;

 define-nueva-instruccion  Ordena(n) Como inicio
 Si junto-a-zumbador entonces inicio
 Coge-zumbador;
 Ordena(sucede(n));
 sal-de-instruccion;
 Fin sino
 inicio
 Repetir n veces deja-zumbador;
 si frente-libre entonces inicio
 avanza;
 mientras frente-libre y no junto-a-zumbador hacer Avanza;
 Si junto-a-zumbador entonces inicio
  Repetir n veces
  Si junto-a-zumbador entonces inicio
  Coge-zumbador;
  fin
  sino inicio
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  media-vuelta; avanza;
  mientras no junto-a-zumbador hacer avanza;
  mientras junto-a-zumbador hacer coge-zumbador;
  media-vuelta;   avanza;
  mientras no junto-a-zumbador hacer avanza;
  mientras junto-a-zumbador hacer coge-zumbador;
  repetir n veces deja-zumbador;
  media-vuelta; avanza;


  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  media-vuelta; avanza;
  Ordena(0);
  sal-de-instruccion;
  fin;
  Si junto-a-zumbador entonces inicio
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  Ordena(0);
  sal-de-instruccion;
  fin;

  Si no  junto-a-zumbador entonces inicio
  Gira-izquierda; avanza;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  media-vuelta; avanza; gira-izquierda;
  mientras frente-libre y no junto-a-zumbador hacer Avanza;
  Ordena(0);
  sal-de-instruccion;
  fin;
 fin;
  fin;
  fin;



  fin;
  define-nueva-instruccion Fila como inicio
  Si junto-a-zumbador entonces inicio
  Coge-zumbador;
  Fila;
  Deja-zumbador;
  sal-de-instruccion;
  Fin
  sino
  si no junto-a-zumbador y frente-libre entonces inicio
  Mientras no junto-a-zumbador y frente-libre  hacer avanza;
  fila;
  Avanza;
  sal-de-instruccion;
  fin;
  Si frente-bloqueado y no junto-a-zumbador entonces inicio
  media-vuelta;
  sal-de-instruccion;
  fin;
  fin;
  define-nueva-instruccion mi como inicio
  Si frente-libre y junto-a-zumbador entonces inicio
  mientras junto-a-zumbador hacer coge-zumbador;
  avanza;
  Mi;
  deja-zumbador;
  fin
  sino
  si no junto-a-zumbador entonces inicio
  mientras no orientado-al-oeste hacer gira-izquierda;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  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;
  mide;
  mientras no orientado-al-oeste hacer gira-izquierda;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;

  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Ordena(0);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;




  mientras no orientado-al-este hacer gira-izquierda;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  Fila;
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  mientras no junto-a-zumbador hacer inicio avanza; fin;
  Mi;



        apagate;
    termina-ejecucion
finalizar-programa
