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

define-nueva-instruccion conteo como inicio
    mientras frente-libre hacer inicio
       avanza;
       gira-izquierda;
       mientras junto-a-zumbador hacer avanza;
       gira (2);
       avanza;
       mientras junto-a-zumbador hacer coge-zumbador;
       mientras frente-libre hacer avanza;
       gira-izquierda;
    fin;

fin;

define-nueva-instruccion compara2 (t) como inicio
   si no si-es-cero (t) y junto-a-zumbador entonces inicio
   coge-zumbador;
   compara2 (precede(t));
   deja-zumbador;
   fin
   sino inicio
       si si-es-cero (t) entonces gira-izquierda;



   fin;

fin;

define-nueva-instruccion compara (t) como inicio
   si junto-a-zumbador entonces inicio
   coge-zumbador;
   compara (sucede(t));
   fin
   sino inicio
   repetir t veces deja-zumbador;
   avanza;
   compara2 (t);
fin;
fin;

define-nueva-instruccion resta (r) como inicio

si junto-a-zumbador entonces inicio
coge-zumbador;
   resta (sucede(r));
fin
sino inicio
  avanza;
  mientras junto-a-zumbador hacer coge-zumbador;
  gira-izquierda;
  mientras frente-libre hacer avanza;
  gira-izquierda;
  mientras derecha-bloqueada hacer avanza;
  gira (3);
  avanza;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  repetir r veces coge-zumbador;
  repetir r veces coge-zumbador;

fin;

fin;

define-nueva-instruccion resta2 (l) como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        resta2 (sucede(l));

    fin
    sino inicio
    avanza;
    mientras junto-a-zumbador hacer coge-zumbador;
    gira (2);
    avanza;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    repetir l veces coge-zumbador;
    repetir l veces coge-zumbador;

    fin;

fin;


    inicia-ejecucion
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    conteo;
    gira (2);
    mientras frente-libre hacer avanza;
    gira (2);
    mientras no junto-a-zumbador hacer avanza;
    gira-izquierda;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    gira (2);
    compara (0);
    (*alcanzan*)
    si orientado-al-este entonces inicio
       gira-izquierda;
      avanza;
      gira (2);
      resta (0);
    fin
    sino inicio
        gira (2);
        resta2 (0);

    fin;


        apagate;
    termina-ejecucion
finalizar-programa
