iniciar-programa
    define-nueva-instruccion busk como
    inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            repetir 4 veces
            inicio
                si frente-libre entonces
                inicio
                    avanza;
                    busk;
                    repetir 2 veces gira-izquierda;
                    avanza;
                    repetir 2 veces gira-izquierda;
                fin;
                gira-izquierda;
            fin;
        fin;
    fin;
    define-nueva-instruccion busk1 como
    inicio
        si no-junto-a-zumbador entonces
        inicio
            si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces deja-zumbador;
            deja-zumbador;
            repetir 4 veces
            inicio
                si frente-libre entonces
                inicio
                    avanza;
                    busk1;
                    repetir 2 veces gira-izquierda;
                    avanza;
                    repetir 2 veces gira-izquierda;
                fin;
                gira-izquierda;
            fin;

        fin;
    fin;
    inicia-ejecucion
        si  frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces
        inicio
            repetir 2 veces gira-izquierda;
            si frente-bloqueado entonces apagate;
            repetir 2 veces gira-izquierda;
        fin;
        busk1;
        busk;
        si frente-libre o derecha-libre o izquierda-libre entonces
        inicio
            gira-izquierda;
            si frente-libre o derecha-libre o izquierda-libre entonces
            inicio
                gira-izquierda;
                si frente-libre o derecha-libre o izquierda-libre entonces
                inicio
                    gira-izquierda;
                    si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces
                    inicio
                    si no-junto-a-zumbador entonces deja-zumbador;
                fin;
                fin
                sino si no-junto-a-zumbador entonces deja-zumbador;
            fin
            sino si no-junto-a-zumbador entonces deja-zumbador;
        fin
        sino si no-junto-a-zumbador entonces deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
