iniciar-programa
    define-nueva-instruccion giraDerecha como inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;

    define-nueva-instruccion mediaVuelta como inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
    fin;

    define-nueva-instruccion avanzaIzquierda(cI) como inicio
        si no si-es-cero(cI) entonces inicio
            si izquierda-libre entonces inicio
                gira-izquierda;
                avanza;
                si junto-a-zumbador entonces apagate;
            fin
            sino inicio
                mientras frente-bloqueado hacer
                    giraDerecha;
                avanza;
            fin;
            si junto-a-zumbador entonces apagate;

            avanzaIzquierda(precede(cI));
        fin;
    fin;

    define-nueva-instruccion avanzaDerecha(cD) como inicio
        si no si-es-cero(cD) entonces inicio
            si derecha-libre entonces inicio
                giraDerecha;
                avanza;
                si junto-a-zumbador entonces apagate;
            fin
            sino inicio
                mientras frente-bloqueado hacer
                    gira-izquierda;
                avanza;
            fin;
            si junto-a-zumbador entonces apagate;

            avanzaDerecha(precede(cD));
        fin;
    fin;

    define-nueva-instruccion ponDerecha como
        mientras derecha-libre hacer gira-izquierda;

    define-nueva-instruccion ponIzquierda como
        mientras izquierda-libre hacer gira-izquierda;

    inicia-ejecucion
    si junto-a-zumbador entonces apagate;
        mientras izquierda-libre hacer gira-izquierda;

        ponDerecha;
        avanzaDerecha(4); mediaVuelta;
        avanzaIzquierda(19); mediaVuelta;
        avanzaDerecha(63); mediaVuelta;
        avanzaIzquierda(175); mediaVuelta;
        avanzaDerecha(447); mediaVuelta;
        avanzaIzquierda(1087); mediaVuelta;
        avanzaDerecha(2559); mediaVuelta;
        avanzaIzquierda(5887); mediaVuelta;
        avanzaDerecha(13311); mediaVuelta;
        avanzaIzquierda(29695); mediaVuelta;
        avanzaDerecha(40959); mediaVuelta;

        apagate;
    termina-ejecucion
finalizar-programa
