iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion junta como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    junta;
    deja-zumbador;
fin
sino
inicio
    gira(3);
    avanza;
    gira(1);
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
    si junto-a-zumbador entonces junta;
fin;
define-nueva-instruccion cima como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    cima;
    deja-zumbador;
fin
sino
inicio
    gira(2);
    avanza;
    gira(1);
     mientras frente-libre hacer avanza;
    gira(1);
    mientras derecha-bloqueada hacer avanza;
    gira(3);
    avanza;
fin;
define-nueva-instruccion lleva como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    lleva;
    deja-zumbador;
fin
sino
inicio
    gira(2);
    avanza;
fin;
define-nueva-instruccion resta(a) como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    resta(sucede(a));
fin
sino
inicio
    gira(2);
    avanza;
    repetir a veces coge-zumbador;
    cima;
fin;
define-nueva-instruccion compara(a) como
si algun-zumbador-en-la-mochila entonces
inicio
    deja-zumbador;
    compara(sucede(a));
fin
sino
inicio
    gira(2);
    avanza;
    repetir a veces si junto-a-zumbador entonces coge-zumbador;
    si no junto-a-zumbador entonces
    inicio
        mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
        resta(0);
    fin;
fin;
    inicia-ejecucion
    mientras frente-libre hacer avanza;
    gira(1);
    mientras derecha-bloqueada hacer avanza;
    gira(2);
    avanza;
    junta;
    gira(2);
    avanza;
    compara(0);
        apagate;
    termina-ejecucion
finalizar-programa
