              iniciar-programa
    define-nueva-instruccion gira(n) como
    inicio
        repetir n veces
        gira-izquierda;
     fin;



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

            avanzaIzquierda(precede(n));
        fin;
    fin;

    define-nueva-instruccion avanzaDerecha(n) como inicio
        si no si-es-cero(n) entonces inicio
            si derecha-libre entonces inicio
                gira(3);
                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(n));
        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);
         inicio
         gira(2);
         avanza;
         fin;
        avanzaIzquierda(19); inicio
         gira(2);
         avanza;
         fin;
        avanzaDerecha(63); inicio
         gira(2);
         avanza;
         fin;
        avanzaIzquierda(175); inicio
         gira(2);
         avanza;
         fin;
        avanzaDerecha(447); inicio
         gira(2);
         avanza;
         fin;
        avanzaIzquierda(1087); inicio
         gira(2);
         avanza;
         fin;
        avanzaDerecha(2559); inicio
         gira(2);
         avanza;
         fin;
        avanzaIzquierda(5887);inicio
         gira(2);
         avanza;
         fin;
        avanzaDerecha(13311);inicio
         gira(2);
         avanza;
         fin;
        avanzaIzquierda(29695); inicio
         gira(2);
         avanza;
         fin;
        avanzaDerecha(40959); inicio
         gira(2);
         avanza;
         fin;

        apagate;
    termina-ejecucion
finalizar-programa

 