iniciar-programa
    define-nueva-instruccion gira (n) como inicio
        repetir n veces gira-izquierda;
    fin;
    define-nueva-instruccion ubica1 como inicio
        mientras no-orientado-al-oeste hacer inicio
            gira-izquierda;
        fin;
        mientras frente-libre hacer inicio
            avanza;
        fin;
        gira-izquierda;
        mientras frente-libre hacer inicio
            avanza;
        fin;
        gira (2);
    fin;
    define-nueva-instruccion coge (n) como inicio
        repetir n veces inicio
            si junto-a-zumbador entonces inicio
                coge-zumbador;
            fin;
        fin;
    fin;
    define-nueva-instruccion deja (n) como inicio
        repetir n veces deja-zumbador;
    fin;
    define-nueva-instruccion regresa (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            regresa (sucede (n));
        fin
        sino inicio
            deja (n);
            avanza;
            deja (n);
        fin;
    fin;
    define-nueva-instruccion distancia como inicio
        si frente-libre entonces inicio
            avanza;
            distancia;
        fin
        sino inicio
            ubica1;
        fin;
        deja (2);
    fin;
    define-nueva-instruccion multiplica (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            multiplica (n);
            deja (n);
        fin;
    fin;
    define-nueva-instruccion vueltas (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            vueltas (sucede (n));
        fin
        sino inicio
            gira (2);
            avanza;
            avanza;
            multiplica (n); (* NV(distancia) *)
            gira-izquierda;
            repetir 2 veces inicio
                coge (n);
            fin;
        fin;
    fin;
    define-nueva-instruccion pasitos (n) como inicio
        si no si-es-cero (precede (n)) entonces inicio
            deja (n);
            regresa  (0);
            pasitos (precede (n));
        fin;
    fin;
    define-nueva-instruccion conejo (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            conejo (sucede (n));
        fin
        sino inicio
            si si-es-cero (precede (n)) entonces inicio
                apagate;
            fin;
            deja (n);
            avanza;
            mientras no-orientado-al-este hacer inicio
                gira-izquierda;
            fin;
            mientras junto-a-zumbador hacer inicio
                avanza;
            fin;
            gira (2);
            si frente-libre entonces inicio
                avanza;
                gira (2);
                regresa (0);
            fin
            sino inicio
                gira (2);
            fin;
            pasitos (n); (* K *)
            deja-zumbador;
        fin;
    fin;
    define-nueva-instruccion compara (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            compara (sucede (n));
        fin
        sino inicio
            deja (n);
            ubica1;
            repetir n veces inicio
                si orientado-al-norte entonces inicio
                    si junto-a-zumbador entonces inicio
                        coge-zumbador;
                    fin
                    sino inicio
                        gira (2);
                        deja (n);
                        coge-zumbador;
                    fin;
                fin
                sino inicio
                    coge-zumbador;
                fin;
            fin;
            si no-junto-a-zumbador entonces inicio
                mientras no-orientado-al-sur hacer inicio
                    gira-izquierda;
                fin;
                deja (n);
            fin;
            si orientado-al-norte entonces inicio
                deja (n);
                avanza;
            fin
            sino inicio
                gira (2);
                avanza;
                mientras junto-a-zumbador hacer inicio
                    coge-zumbador;
                fin;
            fin;
        fin;
    fin;
    define-nueva-instruccion caminaste como inicio
        si frente-libre entonces inicio
            avanza;
            caminaste;
            deja-zumbador;
        fin
        sino inicio
            ubica1;
        fin;
    fin;
    define-nueva-instruccion camino (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            camino (sucede (n));
        fin
        sino inicio
            avanza;
            avanza;
            gira (3);
            mientras junto-a-zumbador hacer inicio
                coge (n);
                si no-junto-a-zumbador entonces inicio
                    avanza;
                fin
                sino inicio
                    si junto-a-zumbador entonces inicio
                        avanza;
                        gira (2);
                        caminaste;
                        apagate;
                    fin;
                fin;
            fin;
            gira (2);
            caminaste;
        fin;
    fin;
    define-nueva-instruccion respuesta como inicio
        si junto-a-zumbador entonces inicio
            conejo (0);
            compara (0);
            respuesta;
        fin
        sino inicio
            ubica1;
            camino (0);
        fin;
    fin;
    inicia-ejecucion
        distancia;
        avanza;
        avanza;
        vueltas (0);
        ubica1;
        avanza;
        respuesta;
        apagate;
    termina-ejecucion
finalizar-programa
