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



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



define-nueva-instruccion faltan2 (n) como inicio
 si junto-a-zumbador y no si-es-cero (n) entonces inicio
  coge-zumbador;
   faltan2 (precede(n));
   fin
   sino inicio
  lleva;
 fin;
fin;



define-nueva-instruccion faltan (n) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   faltan (sucede(n));
    fin
    sino inicio
    avanza;
   faltan2 (n);
 fin;
fin;



define-nueva-instruccion sobran2 (k) como inicio
 si junto-a-zumbador y no si-es-cero (k) entonces inicio
  coge-zumbador;
   sobran2 (precede(k));
    deja-zumbador;
    fin
    sino inicio
   si junto-a-zumbador entonces apagate;
  gira (2);
 fin;
fin;



define-nueva-instruccion sobran (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   sobran (sucede(k));
    fin
     sino inicio
     repetir k veces deja-zumbador;
     avanza;
     sobran2 (k);
    faltan (0);
 fin;
fin;




define-nueva-instruccion ladera como inicio
 si frente-libre entonces inicio
  avanza;
   ladera;
    avanza;
     fin
     sino inicio
     gira-izquierda;
    mientras derecha-bloqueada hacer avanza;
   gira (3);
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
 sobran (0);
 fin;
fin;


define-nueva-instruccion acomoda (j) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   acomoda (j);
    deja-zumbador;
    fin
    sino inicio
   repetir j veces avanza;
  fin;
fin;


define-nueva-instruccion ladera2 (j) como inicio
 si frente-libre entonces inicio
  avanza;
   ladera2 (sucede(j));
    fin
    sino inicio
   gira (2);
  acomoda (j);
 fin;
fin;




    inicia-ejecucion
                                (*------los que tienes-------*)
    mientras frente-libre hacer avanza;
    gira-izquierda;
    mientras derecha-bloqueada hacer avanza;
    gira (3);
    avanza;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    gira (2);
    avanza;
    gira-izquierda;
     mientras no-junto-a-zumbador y frente-libre hacer avanza;

                                 (*------cuantos necesitas?-------*)
   mientras frente-libre o junto-a-zumbador hacer inicio
    mientras junto-a-zumbador hacer coge-zumbador;
     gira (3);
      avanza;
     gira-izquierda;
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
   fin;

    gira-izquierda;
    ladera;
    gira (2);
    ladera2 (0);





        apagate;
    termina-ejecucion
finalizar-programa
