iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion ava(n) como repetir n veces avanza;
define-nueva-instruccion recolecta como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    recolecta;
    deja-zumbador;
fin
sino
inicio
    si frente-libre entonces
    inicio
        avanza;
        recolecta;
    fin
    sino si frente-bloqueado entonces
    inicio
        gira(2);
        mientras frente-libre hacer avanza;
        gira(3);
        si frente-libre entonces
        inicio
            avanza;
            gira(3);
            recolecta;
        fin;
    fin;
fin;
define-nueva-instruccion lleva como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    lleva;
    deja-zumbador;
fiN
sino
inicio
    gira(3);
    ava(1);
    gira(1);
    ava(5);
    gira(1);
    ava(1);
    gira(3);
fin;
define-nueva-instruccion resta(a) como
si junto-a-zumbador entonces
inicio
    si no si-es-cero(a) entonces
    inicio
        coge-zumbador;
        resta(precede(a));
    fin;
fin
sino repetir a veces deja-zumbador;
define-nueva-instruccion compara(a) como
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    compara(sucede(a));
fin
sino
inicio
    avanza;
    resta(a);
fin;
define-nueva-instruccion divide como
si junto-a-zumbador entonces
inicio
    repetir 2 veces coge-zumbador;
    divide;
    deja-zumbador;
fin
sino
inicio
    gira(3);
    ava(1);
    gira(1);
    ava(1);
    gira(1);
    mientras frente-libre hacer avanza;
fin;
    inicia-ejecucion
    ava(5);
    gira(3);
    ava(4);
    gira(3);
    ava(1);
    gira(2);
    recolecta;
    gira(3);
    ava(1);
    gira(3);
    ava(9);
    gira(3);
    ava(1);
    gira(2);
    recolecta;
    lleva;
    compara(0);
    divide;
        apagate;
    termina-ejecucion
finalizar-programa
