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


define-nueva-instruccion bloqueado como inicio
 gira (2);
  mientras frente-libre hacer avanza;
   gira (3);
  avanza;
 gira (3);
fin;



define-nueva-instruccion marca como inicio
 mientras frente-libre o izquierda-libre hacer inicio
  mientras frente-libre y no-junto-a-zumbador hacer avanza;
   si junto-a-zumbador entonces deja-zumbador;
   si frente-libre entonces avanza;

    si frente-bloqueado y izquierda-libre entonces inicio
    bloqueado;
    fin;

   fin;
   gira (2);
   mientras frente-libre hacer avanza;
   gira-izquierda;
  mientras frente-libre hacer avanza;
 gira-izquierda;
fin;



                                  (*-------------VIRUS---------------*)

define-nueva-instruccion virus como inicio
 mientras frente-libre o izquierda-libre hacer inicio
  mientras frente-libre y no-junto-a-zumbador hacer avanza;

   si frente-bloqueado y izquierda-libre y no-junto-a-zumbador entonces inicio
   bloqueado;
   fin;

   si junto-a-zumbador entonces inicio
   coge-zumbador;

   si junto-a-zumbador entonces inicio
   deja-zumbador;
    repetir 4 veces inicio
     si frente-libre entonces inicio
      avanza;
       si no-junto-a-zumbador entonces deja-zumbador;
        gira (2);
         avanza;
         gira (2);
         fin;
         gira-izquierda;
        fin;
       si frente-libre entonces inicio
      avanza;
     fin
    sino inicio
    si frente-bloqueado y izquierda-libre entonces inicio
    bloqueado;
    fin;
    fin;

   fin
    sino inicio
     deja-zumbador;
      si frente-libre entonces inicio
      avanza;
      fin
     sino inicio
    si frente-bloqueado y izquierda-libre entonces inicio
   bloqueado;
  fin;

     fin;

  fin;

fin;

fin;

 gira (2);
  mientras frente-libre hacer avanza;
   gira-izquierda;
   mientras frente-libre hacer avanza;
  gira-izquierda;
 marca;


fin;

(*-----------------------------------------------------------*)

                                  (*--cuenta las dosis que necesitas--*)
define-nueva-instruccion dosis (n) como inicio

 mientras frente-libre o izquierda-libre hacer inicio
  mientras frente-libre y no-junto-a-zumbador hacer avanza;

    si frente-bloqueado y izquierda-libre y no-junto-a-zumbador entonces inicio
    bloqueado;
    fin;

      si junto-a-zumbador entonces inicio
       mientras junto-a-zumbador hacer coge-zumbador;
       si frente-libre entonces avanza;
       dosis (sucede(n));

      fin;


   fin;

   si junto-a-zumbador entonces inicio
    mientras junto-a-zumbador hacer coge-zumbador;
     si frente-libre entonces avanza;
      dosis (sucede(n));
       fin;

       gira (2);
       mientras frente-libre hacer avanza;
       gira-izquierda;
       mientras frente-libre hacer avanza;
       repetir n veces deja-zumbador;
       apagate;

fin;



                                  
define-nueva-instruccion dias (m) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   dias (sucede(m));
    fin
    sino inicio
    marca;
    repetir m veces virus;
    dosis (0);
  fin;
fin;


    inicia-ejecucion

    gira (3);
    dias (0);


        apagate;
    termina-ejecucion
finalizar-programa
