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


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



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



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



define-nueva-instruccion mayor (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   mayor (sucede(k));
    fin
    sino inicio
    repetir k veces deja-zumbador;
    avanza;
      si no-junto-a-zumbador entonces regresa;

   mientras orientado-al-este hacer inicio
    compara (k);
     si orientado-al-este entonces avanza;
      si no-junto-a-zumbador entonces regresa;
       si no-junto-a-zumbador entonces inicio
        gira-izquierda;
        avanza;
        repetir k veces deja-zumbador;
        gira (2);
        mientras frente-libre hacer avanza;
       fin;

    fin;

 fin;
fin;



define-nueva-instruccion menor (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   menor (sucede(k));
    fin
    sino inicio
    repetir k veces deja-zumbador;
    avanza;
     si no-junto-a-zumbador entonces regresa;

   mientras orientado-al-este hacer inicio
    compara2 (k);
     si orientado-al-este entonces avanza;
      si no-junto-a-zumbador entonces regresa;
       si no-junto-a-zumbador entonces inicio
        gira (3);
        mientras frente-libre hacer avanza;
        gira-izquierda;
        avanza;
        mientras junto-a-zumbador hacer coge-zumbador;
        repetir k veces deja-zumbador;
        gira-izquierda;
       fin;

    fin;

 fin;
fin;


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


    inicia-ejecucion

    gira (3);

    mientras no-orientado-al-sur hacer inicio
    mayor (0);
    si orientado-al-oeste entonces gira (2);
    fin;

    gira-izquierda;

    mientras no-orientado-al-norte hacer inicio
    menor (0);
    si orientado-al-oeste entonces gira (2);
    fin;

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


        apagate;
    termina-ejecucion
finalizar-programa
