 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 Recorre(n) como inicio
  Si no junto-a-zumbador y orientado-al-sur y frente-libre entonces inicio
   Avanza;
   Recorre(n);
   Avanza;   avanza;
   sal-de-instruccion;
  fin;
  Si junto-a-zumbador entonces inicio
   coge-zumbador;
   Recorre(n);
   Deja-zumbador; gira-derecha; avanza; deja-zumbador;
   gira-izquierda; avanza; deja-zumbador;      gira-izquierda;
   avanza; deja-zumbador;
   gira-derecha;
   Si frente-libre entonces inicio
   media-vuelta; avanza;
   media-vuelta;
   fin;
   sal-de-instruccion;
  fin;

  Si frente-bloqueado y orientado-al-sur entonces inicio
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  Si izquierda-libre entonces inicio
  Gira-izquierda; avanza;
  Gira-izquierda;
  recorre(n);
  media-vuelta;
  mientras frente-libre hacer inicio avanza; fin;
  gira-izquierda; avanza; avanza;
  gira-izquierda;
  sal-de-instruccion;
  fin sino
  si izquierda-bloqueada entonces inicio
  Gira-derecha;
  mientras frente-libre hacer inicio avanza; fin;
  gira-derecha;
  mientras izquierda-bloqueada hacer inicio avanza; fin;
  gira-izquierda; avanza;
  mientras izquierda-bloqueada  hacer inicio avanza; fin;
  gira-izquierda; avanza;
  mientras izquierda-bloqueada  hacer inicio avanza; fin;
  gira-izquierda;
  mientras frente-libre hacer inicio avanza; fin;
  gira-izquierda;
  mientras frente-libre hacer inicio avanza; fin;
  media-vuelta;
  fin;
  fin;
  fin;
  inicia-ejecucion
  mientras no orientado-al-sur hacer gira-izquierda;
  Recorre(0);
        apagate;
    termina-ejecucion
finalizar-programa
