iniciar-programa
define-nueva-instruccion gira(n) como INICIO
    repetir n veces gira-izquierda;
FIN;
define-nueva-instruccion cuenta(num) como INICIO
    mientras no-junto-a-zumbador hacer INICIO
    si frente-libre entonces INICIO
    avanza;
    cuenta(sucede(num));
    FIN;
    si frente-bloqueado y izquierda-libre entonces INICIO
        gira(1);
        cuenta(sucede(num));
    FIN;
    si frente-bloqueado y derecha-libre entonces INICIO
        gira(3);
        cuenta(sucede(sucede(sucede(num))));
    FIN;
    FIN;
    si junto-a-zumbador entonces INICIO
        repetir precede(num) veces deja-zumbador;
        apagate;
    FIN;
FIN;
    inicia-ejecucion
    si junto-a-zumbador entonces INICIO
        coge-zumbador;
        apagate;
    FIN;
        cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
