iniciar-programa
define-nueva-instruccion media-vuelta como
inicio
repetir 2 veces
gira-izquierda;
fin;

define-nueva-instruccion gira-derecha como
inicio
repetir 3 veces
gira-izquierda;
fin;

define-nueva-instruccion ubicate como
inicio
media-vuelta;
mientras frente-libre hacer
avanza;
gira-derecha;
mientras frente-libre hacer
avanza;
fin;

define-nueva-instruccion compara(n) como
inicio
si no (ningun-zumbador-en-la-mochila o si-es-cero(n)) entonces
inicio
deja-zumbador;
compara (precede(n));
fin
sino
inicio
si si-es-cero (n) entonces
inicio
si algun-zumbador-en-la-mochila entonces
inicio
mientras no-orientado-al-oeste hacer
gira-izquierda;
fin
sino
inicio
mientras no-orientado-al-norte hacer
gira-izquierda;
fin;
fin
sino
inicio
mientras no-orientado-al-este hacer
gira-izquierda;
fin;
fin;
fin;

define-nueva-instruccion paso como
inicio
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
media-vuelta;
mientras frente-libre hacer
avanza;
gira-izquierda;
avanza;
gira-izquierda;
fin;
fin;

define-nueva-instruccion barre(n) como
inicio
si no(frente-bloqueado y derecha-bloqueada) entonces
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
paso;
barre (n);
fin
sino
inicio
paso;
barre (sucede (n));
fin;
fin
sino
inicio
si no-junto-a-zumbador entonces
inicio
compara(sucede(n));
fin
sino
inicio
coge-zumbador;
ubicate;
compara (n);
fin;
fin;
fin;

inicia-ejecucion
barre(0);
        apagate;
    termina-ejecucion
finalizar-programa
