iniciar-programa
    define-nueva-instruccion regresa como inicio
        gira-izquierda;
        gira-izquierda;
        avanza;
    fin;
    define-nueva-instruccion primero como inicio
        si frente-libre entonces inicio
            avanza;
            si no-junto-a-zumbador entonces inicio
                regresa;
                gira-izquierda;
                gira-izquierda;
                gira-izquierda;
                primero;
            fin;
        fin
        sino inicio
            gira-izquierda;
            primero;
        fin;
    fin;
    define-nueva-instruccion checa-derecha como inicio
        si frente-libre entonces inicio
            avanza;
            si no-junto-a-zumbador entonces inicio
                regresa;
                apagate;
            fin;
        fin
        sino inicio
            apagate;
        fin;
    fin;
    define-nueva-instruccion checa-izquierda como inicio
        si frente-libre entonces inicio
            avanza;
            si no-junto-a-zumbador entonces inicio
                regresa;
                checa-derecha;
            fin;
        fin
        sino inicio
            gira-izquierda;
            gira-izquierda;
            checa-derecha;
        fin;
    fin;
    define-nueva-instruccion checa-frente como inicio
        si frente-libre entonces inicio
            avanza;
            si no-junto-a-zumbador entonces inicio
                regresa;
                gira-izquierda;
                gira-izquierda;
                gira-izquierda;          
                checa-izquierda;
            fin;
        fin
        sino inicio
            gira-izquierda;
            checa-izquierda;
        fin;
    fin;
    inicia-ejecucion
        primero;
        mientras junto-a-zumbador hacer inicio
            checa-frente;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
