iniciar-programa
define-nueva-instruccion gd como repetir 3 veces gira-izquierda;

define-nueva-instruccion md como repetir 2 veces gira-izquierda;
                                          
define-nueva-instruccion iz como  gira-izquierda;

define-nueva-instruccion pared como mientras frente-libre hacer avanza;


define-nueva-instruccion dejar como inicio
    si junto-a-zumbador entonces inicio
        repetir 2 veces coge-zumbador;
        dejar;
        deja-zumbador;
    fin
    sino inicio
        pared;
        iz;
        pared;
    fin;
fin;
define-nueva-instruccion quitar como inicio
    mientras junto-a-zumbador o frente-libre  hacer inicio
        si junto-a-zumbador entonces inicio
           coge-zumbador;
        fin
        sino inicio
             avanza;
             dejar;
             apagate;
        fin;
        avanza;
        si junto-a-zumbador entonces inicio
           coge-zumbador;
        fin
        sino inicio
            md;
            avanza;
            deja-zumbador;
            md;
            dejar;
            apagate;
        fin;
        md;
        avanza;
        md;
    fin;
fin;
define-nueva-instruccion juntar como inicio
    mientras frente-libre o junto-a-zumbador hacer inicio
        iz;
            mientras junto-a-zumbador hacer inicio
                mientras junto-a-zumbador hacer coge-zumbador;
                avanza;
            fin;
        md;
        pared;
        iz;
        si frente-libre entonces avanza;
    fin;
fin;
    inicia-ejecucion
    repetir 5 veces avanza;
    gd;
    avanza;
    gd;
    avanza;
    iz;
    juntar;
    iz;
    avanza;
    gd;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    repetir 2 veces avanza;
    gd;
    avanza;
    iz;
    juntar;
    md;
    pared;
    gd;
    avanza;
    iz;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    quitar;
    dejar;
        apagate;
    termina-ejecucion
finalizar-programa
