iniciar-programa
define-nueva-instruccion contar(x) como inicio
mientras no-orientado-al-norte hacer gira-izquierda;
si derecha-bloqueada entonces inicio
si frente-libre entonces inicio
avanza;
contar(sucede(x));
fin;
si frente-bloqueado entonces inicio
mientras no-orientado-al-oeste hacer gira-izquierda;
mientras derecha-bloqueada hacer avanza;
mientras no-orientado-al-norte hacer gira-izquierda;
avanza;
mientras no-orientado-al-norte hacer gira-izquierda;
contar(sucede(x));
fin;
si derecha-libre entonces inicio
mientras no-orientado-al-este hacer gira-izquierda;
avanza;
mientras derecha-bloqueada y frente-libre hacer avanza;
si frente-libre y derecha-libre entonces inicio
mientras no-orientado-al-sur hacer gira-izquierda;
repetir x veces avanza;
deja-zumbador;
si junto-a-zumbador entonces apagate;
fin;
contar(x);
fin;
fin;
si derecha-libre entonces inicio
mientras no-orientado-al-este hacer gira-izquierda;
avanza;
mientras derecha-bloqueada y frente-libre hacer avanza;
mientras frente-libre hacer avanza;
mientras no-orientado-al-sur hacer gira-izquierda;
si frente-libre y derecha-libre entonces inicio
mientras no-orientado-al-sur hacer gira-izquierda;
repetir x veces avanza;
mientras no-orientado-al-oeste hacer gira-izquierda;
mientras frente-libre hacer avanza;
deja-zumbador;
si junto-a-zumbador entonces apagate;
fin;
contar(x);
fin;


fin;

    inicia-ejecucion

    contar(0);
        apagate;
    termina-ejecucion
finalizar-programa


