 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 contorno1 como inicio
  Si junto-a-zumbador entonces inicio
   Coge-zumbador;
  Si junto-a-zumbador entonces inicio
   Coge-zumbador;
   fin sino
   si no junto-a-zumbador entonces inicio
   Contorno1;
   si no junto-a-zumbador entonces
   deja-zumbador;
   mientras no orientado-al-norte hacer gira-izquierda;
   si frente-libre entonces
   avanza;
   si no junto-a-zumbador entonces
   deja-zumbador;
   sal-de-instruccion;
   fin;
   Si junto-a-zumbador entonces inicio
   Coge-zumbador;
   fin sino
   si no junto-a-zumbador entonces inicio
   Contorno1;
   mientras no orientado-al-sur hacer gira-izquierda;
   si frente-libre entonces
   avanza;
   si no junto-a-zumbador entonces
   deja-zumbador;
   sal-de-instruccion;
   Fin;
   si no junto-a-zumbador entonces inicio
   Contorno1;
   deja-zumbador;
   mientras no orientado-al-este hacer gira-izquierda;
   si frente-libre entonces
   avanza;
   si no junto-a-zumbador entonces
   deja-zumbador;
   sal-de-instruccion;
   fin;
   fin;
   si no junto-a-zumbador entonces inicio
   mientras frente-libre hacer avanza;
   media-vuelta;
   avanza;
   fin;
   fin;


  define-nueva-instruccion contorno como inicio
  Si junto-a-zumbador entonces inicio
   Coge-zumbador;
  Si junto-a-zumbador entonces inicio
   Coge-zumbador;
   fin sino
   si no junto-a-zumbador entonces inicio
   avanza;
   Contorno;
   mientras no orientado-al-norte hacer gira-izquierda;
   si frente-libre entonces
   avanza;
   si no junto-a-zumbador entonces
   deja-zumbador;
   sal-de-instruccion;
   fin;
   Si junto-a-zumbador entonces inicio
   Coge-zumbador;
   fin sino
   si no junto-a-zumbador entonces inicio
   avanza;
   Contorno;
   mientras no orientado-al-sur hacer gira-izquierda;
   si frente-libre entonces
   avanza;
   si no junto-a-zumbador entonces
   deja-zumbador;
   sal-de-instruccion;
   Fin;
   si no junto-a-zumbador entonces inicio
   avanza;
   Contorno;
   mientras no orientado-al-este hacer gira-izquierda;
   si frente-libre entonces
   avanza;
   si no junto-a-zumbador entonces
   deja-zumbador;
   sal-de-instruccion;
   fin;
   fin;
   si no junto-a-zumbador entonces inicio
   mientras frente-libre hacer avanza;
   Contorno1;
   fin;
   fin;

  define-nueva-instruccion Area(n) como inicio
  Si frente-libre y no junto-a-zumbador entonces inicio
  Avanza;
  Area(sucede(n));
  Fin
  sino
  si junto-a-zumbador entonces inicio
  Repetir n veces deja-zumbador;
  avanza;
  Area(0);
  fin;
  si frente-bloqueado y orientado-al-norte entonces inicio
  media-vuelta;
  mientras frente-libre hacer avanza;
  gira-izquierda;
  Si frente-libre entonces inicio
  avanza;
  gira-izquierda;
  Area(0);
  fin;
  fin;
  fin;

  define-nueva-instruccion recoge(n) como inicio

  Si junto-a-zumbador y frente-libre entonces inicio
  Coge-zumbador;
  Recoge(sucede(n));
  fin
  sino
  si no junto-a-zumbador y frente-libre entonces inicio
  deja-zumbador;   avanza;
  mientras frente-libre y no junto-a-zumbador hacer avanza;
  si junto-a-zumbador entonces
  Recoge(n);
  fin;

  si frente-bloqueado y no junto-a-zumbador entonces inicio
  media-vuelta;
  mientras frente-libre hacer avanza;
  gira-izquierda;
  Si frente-libre entonces inicio
  avanza;
  gira-izquierda;
  mientras frente-libre y no junto-a-zumbador hacer avanza;
  Recoge(n);
  fin
  sino inicio
  media-vuelta;
  mientras frente-libre hacer  avanza;
  repetir n veces deja-zumbador;
  apagate;
  fin;
  fin;

  fin;

  define-nueva-instruccion copia(n) como inicio
   si junto-a-zumbador entonces inicio
   Coge-zumbador;
   Copia(sucede(n));
   Fin sino inicio
   media-vuelta; Avanza;
   repetir n veces DEja-zumbador;
   media-vuelta; avanza; avanza;
   fin;


  fin;

    inicia-ejecucion
    mientras no orientado-al-este hacer gira-izquierda;
    avanza;
    avanza;
    Si junto-a-zumbador entonces inicio
    media-vuelta; avanza;
    media-vuelta;
    Copia(0);
    fin sino
    si no junto-a-zumbador entonces inicio
    media-vuelta; avanza; deja-zumbador; avanza; deja-zumbador;
    apagate;
    fin;
    mientras junto-a-zumbador hacer inicio
    avanza;
    fin;
    si no junto-a-zumbador entonces inicio
    media-vuelta;
    avanza;
    fin;
    Contorno;
    mientras no orientado-al-oeste hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    media-vuelta; avanza;
    gira-izquierda;
    Area(0);
    media-vuelta;
    mientras frente-libre hacer avanza;
    media-vuelta; avanza;
    gira-izquierda;
    mientras no junto-a-zumbador y frente-libre hacer avanza;
    si junto-a-zumbador entonces inicio
    Recoge(0);
    fin
    sino inicio
    media-vuelta;
    mientras frente-libre hacer avanza;
    gira-izquierda; avanza; gira-izquierda;
    Recoge(1);
    FIN;



        apagate;
    termina-ejecucion
finalizar-programa


