iniciar-programa
define-nueva-instruccion gira(b) como repetir b veces gira-izquierda;
define-nueva-instruccion multiplic-b(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
multiplic-b(n);
repetir n veces
deja-zumbador;
fin
sino inicio
gira-izquierda;
avanza;
gira(3);
avanza;
gira(3);
avanza;
fin;
fin;
define-nueva-instruccion multiplic-a(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
multiplic-a(sucede(n));
fin
sino inicio
avanza;
multiplic-b(n);
fin;
fin;
define-nueva-instruccion divide(m) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
divide(sucede(m));
fin
sino inicio
repetir m veces inicio
deja-zumbador;
fin;
avanza;
gira-izquierda;
avanza;
gira-izquierda;
avanza;
repetir m veces inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
gira(2);
avanza;
mientras algun-zumbador-en-la-mochila hacer inicio
deja-zumbador;
fin;
apagate;
fin;
fin;
gira(2);
avanza;
gira(3);
avanza;
gira(3);
avanza;
avanza;
gira(3);
avanza;
deja-zumbador;
gira(2);
avanza;
mientras algun-zumbador-en-la-mochila hacer inicio
deja-zumbador;
fin;
gira-izquierda;
avanza;
divide(0);
fin;
fin;
    inicia-ejecucion
    avanza;
    gira-izquierda;
    repetir 3 veces inicio
    avanza;
    fin;
    gira-izquierda;
    avanza;
    gira-izquierda;
    multiplic-a(0);
    gira(1);
    avanza;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    fin;
    gira-izquierda;
    avanzA;
    avanza;
    gira-izquierda;
    repetir 2 veces inicio
    avanza;
    fin;
    gira(2);
    divide(0);
        apagate;
    termina-ejecucion
finalizar-programa
