iniciar-programa
 define-nueva-instruccion gira(l) como repetir l veces gira-izquierda;
 define-nueva-instruccion conejin(k) como inicio
 si junto-a-zumbador entonces inicio
 coge-zumbador;
 conejin(sucede(k));
 fin sino inicio
 repetir 2 veces avanza;
 gira(3);
 mientras frente-libre y orientado-al-este hacer inicio
 si frente-libre y orientado-al-este entonces repetir k veces inicio
 si frente-bloqueado y no-orientado-al-sur entonces gira(3);
 si frente-libre y orientado-al-este entonces avanza;
 fin;
 si orientado-al-este entonces deja-zumbador;
 fin;
 fin;
 fin;
 define-nueva-instruccion tortugin(m) como inicio
 si junto-a-zumbador entonces inicio
 coge-zumbador;
 tortugin(sucede(m));
 fin sino inicio
 gira(3);
 repetir 2 veces avanza;
 gira(3);
 mientras no junto-a-zumbador hacer avanza;
 si junto-a-zumbador entonces coge-zumbador;
 mientras frente-libre y orientado-al-este hacer inicio
 si frente-libre y orientado-al-este entonces repetir m veces inicio
si frente-bloqueado y no-orientado-al-norte entonces gira(1);
si frente-libre y orientado-al-este entonces avanza;
  fin;
 si orientado-al-este entonces deja-zumbador;
 fin;
 fin;
 fin;
   define-nueva-instruccion diztan(n) como inicio
  mientras frente-libre y no-junto-a-zumbador y orientado-al-este hacer avanza;
  si junto-a-zumbador y orientado-al-este entonces inicio
  deja-zumbador;
  gira(2);
  mientras frente-libre hacer avanza;
  gira(1);
  avanza;
  gira(1);
  mientras no-junto-a-zumbador y frente-libre hacer avanza;
  gira(1);
  si junto-a-zumbador y orientado-al-norte entonces inicio
  coge-zumbador;
  avanza;
  si no-junto-a-zumbador y orientado-al-norte entonces inicio
  gira(1);
  mientras frente-libre hacer avanza;
  gira(2);
  mientras no-junto-a-zumbador hacer avanza;
  mientras junto-a-zumbador hacer coge-zumbador;
  diztan(n);
  fin;
  si junto-a-zumbador y orientado-al-norte entonces inicio
  coge-zumbador;
  si junto-a-zumbador y orientado-al-norte entonces inicio
  coge-zumbador;
  gira(1);
  diztan(sucede(n));
  fin;
  si no-junto-a-zumbador y orientado-al-norte entonces inicio
  deja-zumbador;
  gira(1);
  mientras frente-libre hacer avanza;
  gira(2);
  mientras no-junto-a-zumbador hacer avanza;
  mientras junto-a-zumbador hacer coge-zumbador;
  diztan(n);
   fin;
  fin;
  fin;
  fin sino inicio
  mientras frente-libre hacer avanza;
  gira(1);
  mientras frente-libre hacer avanza;
  fin;
  si si-es-cero(n) entonces deja-zumbador;
  fin;
    inicia-ejecucion
 repetir 2 veces avanza;
 conejin(0);
 si no-orientado-al-sur entonces gira(3);
 repetir 3 veces avanza;
 gira(3);
 mientras frente-libre hacer avanza;
tortugin(0);
si no-orientado-al-norte entonces gira(1);
avanza;
gira(1);
mientras frente-libre hacer avanza;
gira(2);
diztan(0);
              apagate;
    termina-ejecucion
finalizar-programa
