iniciar-programa
    define-nueva-instruccion gira-derecha como
        repetir 3 veces
            gira-izquierda;
    define-nueva-instruccion orienta-al-oeste como
        mientras no-orientado-al-oeste hacer
            gira-izquierda;
    define-nueva-instruccion orienta-al-sur como
        mientras no-orientado-al-sur hacer
            gira-izquierda;
    define-nueva-instruccion crea-diagonales como
    inicio
        si no-junto-a-zumbador entonces
            deja-zumbador;
        si frente-libre entonces
        inicio
            avanza;
            gira-derecha;
            avanza;
            gira-izquierda;
            crea-diagonales;
        fin
        sino
        inicio
            gira-izquierda;
            mientras frente-libre hacer
                avanza;
            si no-junto-a-zumbador entonces
            inicio
                gira-izquierda;
                gira-izquierda;
                crea-diagonales;
            fin;
        fin;
    fin;
    define-nueva-instruccion ubica-mitad como
    inicio
        si frente-bloqueado entonces
        inicio
            gira-izquierda;
            gira-izquierda;
        fin
        sino
        inicio
            avanza;
            avanza;
            ubica-mitad;
            avanza;
        fin;
    fin;
    define-nueva-instruccion crea-rectas como
    inicio
        ubica-mitad;
        gira-derecha;
        deja-zumbador;
        mientras frente-libre hacer
        inicio
            avanza;
            si no-junto-a-zumbador entonces
                deja-zumbador;
        fin;
        gira-izquierda;
        gira-izquierda;
        mientras derecha-libre hacer
        inicio
            avanza;
            gira-derecha;
            avanza;
            gira-izquierda;
        fin;
        gira-izquierda;
        deja-zumbador;
        mientras frente-libre hacer
        inicio
            avanza;
            si no-junto-a-zumbador entonces
                deja-zumbador;
        fin;
    fin;
    inicia-ejecucion
        orienta-al-oeste;
        mientras frente-libre hacer
            avanza;
        orienta-al-sur;
        mientras frente-libre hacer
            avanza;
        gira-izquierda;
        gira-izquierda;
        crea-diagonales;
        gira-izquierda;
        crea-rectas;
        apagate;
    termina-ejecucion
finalizar-programa
