iniciar-programa
  define-nueva-instruccion media-Vuelta como inicio
   repetir 2 veces gira-izquierda;
  fin;

  define-nueva-instruccion gira-Derecha como inicio
   repetir 3 veces gira-izquierda;
  fin;

 define-nueva-instruccion pasos(n) como inicio

  si no si-es-cero(n) entonces inicio
  repetir n veces inicio
    si frente-libre entonces inicio
    avanza;
    fin
    sino inicio
    si frente-bloqueado y no orientado-al-oeste entonces inicio
     media-vuelta; avanza;
    fin;
    fin;

  fin;

  si orientado-al-este entonces inicio
   gira-izquierda; avanza; deja-zumbador; media-vuelta; avanza; gira-izquierdA;
  fin
  sino  inicio
  si orientado-al-oeste entonces inicio
    gira-derecha; avanza; deja-zumbador; media-vuelta; avanza; gira-derecha;
  fin
  sino
  si (frente-bloqueado y orientado-al-oeste) entonces inicio
    sal-de-instruccion;
  fin;
  fin;
  fin;


   si no si-es-cero(n)y no (frente-bloqueado y orientado-al-oeste)  entonces inicio
     pasos(precede(n));
   fin
   sino inicio
   sal-de-instruccion;
   fin;
 fin;

 define-nueva-instruccion paso(n) como inicio
  si junto-a-zumbador entonces inicio
  coge-zumbador;
  paso(sucede(n));
  fin
  sino inicio
  media-vuelta; avanza; gira-izquierda;
  pasos(n);
  mientras no (frente-bloqueado y orientado-al-oeste) hacer inicio
  si no (frente-bloqueado y orientado-al-oeste)  entonces inicio
   pasos(n);
  fin
  sino
  si frente-bloqueado y orientado-al-este  entonces inicio
   media-vuelta;
   pasos(n);
  fin;
  fin;
  fin;
  fin;

  define-nueva-instruccion mult(n) como inicio
  si junto-a-zumbador entonces inicio
   coge-zumbador;
   mult(n);
   repetir n veces deja-zumbador;
  fin sino inicio
  avanza;
  avanza;
  fin;
  fin;
  define-nueva-instruccion recoge(n) como inicio
  si junto-a-zumbador entonces inicio
   coge-zumbador;
   recoge(sucede(n));
  fin sino inicio
   mientras no junto-a-zumbador y frente-libre hacer avanza;
   si junto-a-zumbador entonces inicio
    recoge(n);
   fin sino inicio
    media-vuelta;
    mientras frente-libre hacer avanza;
    gira-derecha; avanza; media-vuelta;
    mult(n);
   fin;
  fin;
  fin;

 inicia-ejecucion
  mientras no orientado-al-este hacer inicio
  gira-izquierda;
  fin;
  gira-izquierda; avanza;
  paso(0);
  gira-derecha; avanza; gira-derecha;
  recoge(0);
(*  C:\Users\Chucho\Documents\KINGSTON\Mem Kingston\USB ROJO\ESCRITORIO\DESCARGAS\Nueva carpeta*)
  si junto-a-zumbador entonces inicio
  coge-zumbador;
    si junto-a-zumbador entonces inicio
     coge-zumbador;
       si junto-a-zumbador entonces inicio
        coge-zumbador;
           si junto-a-zumbador entonces inicio
              coge-zumbador;
             si junto-a-zumbador entonces inicio
                repetir 4 veces deja-zumbador;
             fin
             sino
              repetir 3 veces deja-zumbador;
           fin
           sino repetir 3 veces deja-zumbador;
    fin
           sino repetir 2 veces deja-zumbador;
fin
           sino repetir 1 veces deja-zumbador;
           fin
           sino deja-zumbador;









        apagate;
    termina-ejecucion
finalizar-programa
