iniciar-programa
define-nueva-instruccion gira(n) como inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion emp como inicio
mientras no orientado-al-oeste hacer
gira-izquierda;
mientras frente-libre hacer
avanza;
gira(1);
mientras frente-libre hacer
avanza;
gira(2);
fin;
define-nueva-instruccion bp(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
bp(sucede(n));
fin sino inicio
mientras frente-libre hacer inicio
repetir n veces inicio
si frente-libre entonces
avanza;
fin;
deja-zumbador;
fin;
fin;
fin;
define-nueva-instruccion bs(l) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
bs(sucede(l));
fin sino inicio
mientras frente-libre hacer inicio
repetir l veces inicio
si frente-libre entonces
avanza;
fin;
deja-zumbador;
fin;
fin;
fin;
define-nueva-instruccion busca(z) como inicio
si no junto-a-zumbador entonces inicio
avanza;
busca(sucede(z));
fin sino inicio
gira(1);
avanza;
si no junto-a-zumbador entonces inicio
gira(2);
avanza;
coge-zumbador;
gira(1);
busca(z);
fin sino inicio
gira(1);
mientras frente-libre hacer
avanza;
gira(1);
avanza;
avanza;
repetir z veces deja-zumbador;
fin;
fin;
fin;
    inicia-ejecucion
    emp;
    bp(0);
    gira(2);
    mientras frente-libre hacer
    avanza;
    gira(1);
    avanza;
    gira(1);
    bs(0);
    gira(2);
    mientras frente-libre hacer
    avanza;
    gira(2);
    busca(0);
        apagate;
    termina-ejecucion
finalizar-programa
