iniciar-programa
    define-nueva-instruccion orientar como
        inicio
            mientras izquierda-libre hacer gira-izquierda;
        fin;

    define-nueva-instruccion camina como
        inicio
            si frente-bloqueado entonces repetir 3 veces gira-izquierda;
            si frente-libre entonces avanza;
            mientras izquierda-libre hacer
                inicio
                    gira-izquierda;
                    si frente-libre entonces avanza;
                fin;
        fin;

    define-nueva-instruccion marcar como
        inicio
            mientras no-junto-a-zumbador hacer
                inicio
                    deja-zumbador;
                    camina;
                fin;
        fin;

    define-nueva-instruccion pared como
        inicio
            repetir 3 veces gira-izquierda;
            mientras frente-libre hacer avanza;
            si junto-a-zumbador entonces
                inicio
                    repetir 2 veces gira-izquierda;
                    mientras frente-libre hacer avanza;
                    repetir 3 veces gira-izquierda;
                fin;
        fin;

    define-nueva-instruccion ir como
        inicio
            gira-izquierda;
            mientras derecha-bloqueada hacer
                inicio
                    mientras frente-libre hacer avanza;
                    si frente-bloqueado y no-orientado-al-sur entonces gira-izquierda;
                    si frente-bloqueado y orientado-al-sur entonces apagate;

                fin;
        fin;

    define-nueva-instruccion salir como
        inicio
            mientras junto-a-zumbador hacer
                inicio
                    camina;
                    pared;
                fin;
        fin;

    inicia-ejecucion
        orientar;
        marcar;
        salir;
        ir;
        apagate;
    termina-ejecucion
finalizar-programa
