iniciar-programa
define-nueva-instruccion paso(n) como inicio
    si frente-libre entonces inicio
        si derecha-libre y orientado-al-norte entonces inicio
            avanza;
            paso(sucede(n));
        fin;
        si (derecha-bloqueada y frente-libre) o ((orientado-al-este o orientado-al-oeste) y frente-libre)entonces inicio
          si derecha-bloqueada entonces gira-izquierda;
           mientras derecha-libre y frente-libre hacer avanza;
           si frente-libre y derecha-bloqueada entonces gira-izquierda;
           paso(n);
        fin;
        si (orientado-al-sur y frente-libre) y derecha-libre entonces inicio
            avanza;
            paso(precede(n));
        fin;
    fin sino repetir n veces deja-zumbador;
fin;
    inicia-ejecucion
    paso(0);
        apagate;
    termina-ejecucion
finalizar-programa
