iniciar-programa
define-nueva-instruccion g(n) como
repetir n veces gira-izquierda;
define-nueva-instruccion busca(n) como
inicio
    si si-es-cero(n) entonces
    inicio
        mientras no-orientado-al-norte hacer
        gira-izquierda;
    fin
    sino
    inicio
        si frente-libre entonces
        avanza
        sino
        inicio
            mientras no-orientado-al-norte hacer
            gira-izquierda;
            si frente-libre entonces
            inicio
                avanza;
                si derecha-bloqueada entonces
                gira-izquierda
                sino
                si izquierda-bloqueada entonces
                g(3);
            fin
            sino
            inicio
                mientras no-orientado-al-este hacer
                gira-izquierda;
                mientras frente-libre hacer
                avanza;
                g(3);
                mientras frente-libre hacer
                avanza;
                g(2);
                avanza;
                gira-izquierda;
            fin;
        fin;
        busca(precede(n))
    fin;
fin;
define-nueva-instruccion cuenta1(n) como
inicio
    si junto-a-zumbador entonces
    inicio
        coge-zumbador;
        cuenta1(sucede(n))
    fin
    sino
    inicio
        si si-es-cero (n) entonces
        apagate;
        gira-izquierda;
        si frente-libre entonces
        avanza
        sino
        apagate;
        gira-izquierda;
        busca(precede(n));
    fin;
fin;
define-nueva-instruccion cuenta(n) como
inicio
    si junto-a-zumbador entonces
    inicio
        coge-zumbador;
        cuenta(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(n)))))))))))
    fin
    sino
    inicio
        avanza;
        cuenta1(n);
    fin;
fin;
    inicia-ejecucion
    mientras no-orientado-al-este hacer
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    g(3);
    mientras frente-libre hacer
    avanza;
    g(3);
    avanza;
    g(2);
    cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
