iniciar-programa

    define-nueva-instruccion gira(n) como inicio
        repetir n veces gira-izquierda;
    fin;

    define-nueva-instruccion ve-izquierda como inicio
        gira(3);
        mientras frente-libre hacer avanza;
        gira-izquierda;
    fin;

    define-nueva-instruccion deja(n) como inicio
        ve-izquierda;
        repetir n veces deja-zumbador;
        apagate;
    fin;

    define-nueva-instruccion busca(n) como inicio
        si frente-libre entonces inicio
            avanza;
            si derecha-bloqueada y izquierda-bloqueada entonces inicio
                busca(sucede(n));
            fin
            sino inicio
                ve-izquierda;
                busca(n);
            fin;
        fin
        sino inicio
            gira-izquierda;
            mientras derecha-bloqueada y frente-libre hacer avanza;
            gira(3);
            si frente-libre entonces inicio
                avanza;
                si derecha-bloqueada y izquierda-bloqueada entonces inicio
                    busca(sucede(n));
                fin
                sino inicio
                    ve-izquierda;
                    busca(n);
                fin;
            fin
            sino inicio
                deja(n);
            fin;
        fin;
    fin;

    inicia-ejecucion
        ve-izquierda;
        busca(0);
        apagate;
    termina-ejecucion
finalizar-programa
