iniciar-programa
define-nueva-instruccion gira (r) como inicio
repetir r veces gira-izquierda;
fin;



define-nueva-instruccion sacalo como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   sacalo;
    deja-zumbador;
    fin
    sino inicio
    gira (3);
   avanza;
  gira (2);
 fin;
fin;





define-nueva-instruccion colados (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   colados (k);
    avanza;
     sacalo;
    avanza;
   gira (3);

    fin
    sino inicio
    gira (2);
    avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
     repetir k veces inicio
      si frente-libre entonces inicio avanza; fin sino inicio
      gira (2); fin;
     fin;
    si orientado-al-este entonces inicio
    gira (2);
    avanza;
   fin;
 fin;
fin;



define-nueva-instruccion gandaya (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   gandaya (sucede(k));
    fin
    sino inicio
   avanza;
  colados (k);
 fin;
fin;

                         (*---acomodar la fila con los colados al final---*)

define-nueva-instruccion acomoda2 como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   acomoda2;
    deja-zumbador;
     fin
     sino inicio
     gira (3);
     avanza;
    gira-izquierda;
   mientras junto-a-zumbador hacer avanza;
  fin;
fin;



define-nueva-instruccion acomoda como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   acomoda;
    deja-zumbador;
     fin
     sino inicio
     gira (2);
     avanza;
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
   gira (2);
  si junto-a-zumbador entonces avanza;
 fin;
fin;



    inicia-ejecucion

    mientras no-orientado-al-norte hacer gira-izquierda;
    avanza;
    gira (3);

    gandaya (0);

    gira (2);
    mientras no-junto-a-zumbador hacer avanza;

    mientras junto-a-zumbador hacer inicio
     acomoda;
      si frente-libre entonces avanza;
     mientras no-junto-a-zumbador y frente-libre hacer avanza;
    fin;

    gira (2);
    mientras frente-libre hacer avanza;
    gira (3);
    avanza;
    gira (3);
    mientras no-junto-a-zumbador hacer avanza;


    mientras junto-a-zumbador hacer inicio
     acomoda2;
      gira-izquierda;
       avanza;
        gira-izquierda;
        mientras no-junto-a-zumbador y frente-libre hacer avanza;
        mientras junto-a-zumbador y frente-libre hacer avanza;
        gira (2);
       si no-junto-a-zumbador entonces inicio
      avanza;
     fin;
    fin;





        apagate;
    termina-ejecucion
finalizar-programa
