iniciar-programa

    define-nueva-instruccion Instru(n) como inicio
        si frente-bloqueado entonces inicio
            repetir n veces inicio
            deja-zumbador;
        fin;
        apagate;
        fin;

        si frente-libre entonces inicio
            si orientado-al-norte y derecha-bloqueada entonces inicio
                 gira-izquierda;
            fin;
            si orientado-al-norte y derecha-libre entonces inicio
                avanza;
                Instru(sucede(n));
            fin;
            si orientado-al-sur entonces inicio
                si derecha-bloqueada entonces inicio
                    gira-izquierda;
                fin sino inicio

                    avanza;
                    Instru(precede(n));
                fin;
            fin;
            si orientado-al-este entonces inicio
                si derecha-libre entonces inicio
                    avanza;
                fin sino inicio

                    gira-izquierda;
                fin;
            fin;
               si orientado-al-oeste entonces inicio
                si derecha-libre entonces inicio
                    avanza;
                fin sino inicio
                    gira-izquierda;
                fin;
         fin
        fin;
        instru(n);



        fin;


    inicia-ejecucion
        Instru(0);
        apagate;
    termina-ejecucion
finalizar-programa
