iniciar-programa
define-nueva-instruccion gira-derecha como inicio
    repetir 3 veces gira-izquierda;
fin;
    inicia-ejecucion
    si ningun-zumbador-en-la-mochila entonces apagate;
    deja-zumbador; si ningun-zumbador-en-la-mochila entonces apagate; avanza; deja-zumbador; gira-derecha; avanza; gira-derecha; avanza;
    deja-zumbador; gira-izquierda; avanza; repetir 2 veces gira-izquierda;
    mientras algun-zumbador-en-la-mochila hacer inicio
    si junto-a-zumbador entonces inicio
                gira-derecha; avanza; gira-izquierda; avanza;
            fin;
        si frente-libre entonces inicio

            deja-zumbador; avanza; gira-derecha; avanza; deja-zumbador; gira-izquierda;
            si frente-bloqueado entonces inicio
                gira-izquierda; mientras frente-libre hacer avanza; gira-izquierda;
                mientras junto-a-zumbador hacer inicio
                si frente-bloqueado entonces apagate; avanza;
                fin;
                repetir 2 veces gira-izquierda;
            fin;
        fin;
        si frente-bloqueado entonces inicio
            deja-zumbador; si derecha-bloqueada entonces apagate; gira-izquierda; mientras frente-libre hacer avanza; gira-izquierda;
            mientras junto-a-zumbador hacer inicio
             si frente-bloqueado entonces apagate; avanza;
            fin;
            repetir 2 veces gira-izquierda;
        fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
