iniciar-programa
define-nueva-instruccion deja(m) como inicio
si no si-es-cero(m) entonces inicio
deja-zumbador;
deja(precede(m));
fin;
fin;
define-nueva-instruccion cuenta(n) como inicio
repetir 4 veces inicio
si izquierda-bloqueada y no-junto-a-zumbador entonces inicio
deja-zumbador;
avanza;
cuenta(sucede(n));
fin
sino inicio
gira-izquierda;
avanza;
si junto-a-zumbador entonces inicio
gira-izquierda;
gira-izquierda;
avanza;
gira-izquierda;
mientras frente-libre hacer inicio
avanza;
fin;
deja(n);
apagate;
fin;
fin;
fin;
fin;
inicia-ejecucion
si orientado-al-oeste entonces inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;
si orientado-al-este entonces inicio
gira-izquierda;
fin;
si orientado-al-sur entonces inicio
gira-izquierda;
gira-izquierda;
fin;
mientras derecha-libre hacer inicio
avanza;
fin;
gira-izquierda;
gira-izquierda;
avanza;
gira-izquierda;
avanza;
cuenta(0);
apagate;
termina-ejecucion
finalizar-programa