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