iniciar-programa
define-nueva-instruccion gira-derecha como
inicio
repetir 3 veces
gira-izquierda;
fin;
define-nueva-instruccion media-vuelta como
inicio
repetir 2 veces
gira-izquierda;
fin;
define-nueva-instruccion regresa como
inicio
media-vuelta;
avanza;
media-vuelta;
fin;
define-nueva-instruccion compara(x) como
inicio
si si-es-cero(x) entonces
inicio
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador hacer
coge-zumbador;
fin;
fin
sino
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
compara(precede(x));
deja-zumbador;
fin;

fin;
fin;

define-nueva-instruccion busca(x) como
inicio
si no-junto-a-zumbador entonces
inicio
gira-derecha;
deja-zumbador;
repetir 3 veces
inicio
si frente-libre entonces
inicio
avanza;
busca(sucede(x));
regresa;
fin;
gira-izquierda;
fin;
media-vuelta;
coge-zumbador;
fin
sino
inicio
coge-zumbador;
si junto-a-zumbador entonces
inicio
coge-zumbador;
si no-junto-a-zumbador entonces
inicio
repetir x veces
deja-zumbador;
fin
sino
inicio
compara(x);
fin;
repetir 2 veces
deja-zumbador;
fin
sino
inicio
deja-zumbador;
fin;
fin
fin;

define-nueva-instruccion limpia como
inicio
si no-junto-a-zumbador entonces
inicio
deja-zumbador;
repetir 4 veces
inicio
si frente-libre entonces
inicio
avanza;
limpia;
regresa;
fin;
gira-izquierda;
fin;
fin
sino
inicio
coge-zumbador;
si junto-a-zumbador entonces
inicio
coge-zumbador;
apagate;
fin
sino
deja-zumbador;
fin;
fin;

inicia-ejecucion
busca(0);
limpia;
apagate;
termina-ejecucion
finalizar-programa