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

define-nueva-instruccion rodea(n) como inicio
si no-junto-a-zumbador entonces   inicio
deja-zumbador;
si  (izquierda-bloqueada o izquierda-libre) entonces inicio
repetir n veces avanza;
si izquierda-libre entonces inicio
gira-izquierda;
fin;
rodea(n);
deja-zumbador;
fin;
fin
sino inicio
si junto-a-zumbador entonces inicio
avanza;
g(3);
avanza;
fin;
fin;
fin;

define-nueva-instruccion conta(n) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
  conta(sucede(n));
 fin
 sino inicio
 g(1);
 avanza;
 g(3);
  rodea(n)
 fin;
fin;
define-nueva-instruccion espacio(n) como inicio
si frente-libre y izquierda-bloqueada y no-junto-a-zumbador entonces inicio
avanza;
espacio(Sucede(n));
deja-zumbador;
fin
sino inicio
si junto-a-zumbador y izquierda-bloqueada entonces inicio
avanza;
fin
sino
si izquierda-libre y no-orientado-al-sur entonces inicio
gira-izquierda;
avanza;
fin
sino
si orientado-al-sur y izquierda-libre y junto-a-zumbador entonces inicio
g(1);
avanza;
avanza;
g(3);
avanza;
repetir n veces deja-zumbador;
apagate;
fin;
fin;
espacio(n);
fin;
    inicia-ejecucion
    mientras no-orientado-al-este hacer gira-izquierda;
    avanza;
    conta(0);
    g(2);
    avanza;
    g(3);
    espacio(0);
        apagate;
    termina-ejecucion
finalizar-programa
