Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Skrypt mieszarki synonimów

Tworzenie dynamicznych stron internetowych z zastosowaniem JavaScript, jQuery, Ajax. Dowiedz się jak to zrobić, znajdź rozwiązania swoich problemów.

Skrypt mieszarki synonimów

Post 16.06.2018, 12:22:28

nie mam doświadczenia w Javascript

mam takie funkcje:

Kod: Zaznacz cały
shuffle = function(o) {
        for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
        return o
    };
    shuffle_inp = function(c) {
        var a = Array();
        for (var j = 0; j < c.length; j++) {
            if (c[j] == '}') {
                var b = '';
                var d = '';
                var e = '';
                var f = '';
                while (d != '[') {
                    if (a.length <= 0) {
                        throw "Mixer error";
                        alert('z')
                    }
                    d = a.pop();
                    if (d != '[') {
                        b = d + b
                    }
                }
                e = b.split('|');
                f = shuffle(e);
                var g = '';
                for (var k = 0; k < f.length; k++) {
                    if (f[k] != '') {
                        g = g + f[k]
                    }
                }
                a.push(g)
            } else {
                a.push(c[j])
            }
        }
        c = '';
        for (var k = 0; k < a.length; k++) {
            if (a[k] != '') c = c + a[k]
        }
        return c
    };
    mixr = function(a, b, d) {
        if (d == undefined) {
            d = true
        }
        var e = Array();
        var f = a.split('###');
        var g = [];
        for (i in f) {
            g = g.concat(f[i].split('#'))
        }
        a = g[Math.floor(Math.random() * g.length)];
        var h = '';
        for (var i = 0; i < a.length; i++) {
            if (a[i] == '}') {
                var c = '';
                var j = '';
                var k = '';
                var l = '';
                while (j != '{') {
                    if (e.length <= 0) {
                        throw "Błąd mixera";
                    }
                    j = e.pop();
                    if (j != '{') c = j + c
                }
                if (d) {
                    c = shuffle_inp(c)
                }
                k = c.split('|');
                l = k[Math.floor(Math.random() * k.length)];
                e.push(l)
            } else {
                e.push(a[i])
            }
        }
        for (var i = 0; i < e.length; i++) {
            if (e[i] != '') h = h + e[i]
        }
        if (d) {
            h = shuffle_inp(h)
        }
        if (b) {
            var m = h.split("\n\n");
            m = shuffle(m);
            h = '';
            for (var i = 0; i < m.length; i++) {
                if (m[i] != '') {
                    h = h + m[i];
                    if (i < m.length - 1) {
                        h = h + "\n\n"
                    }
                }
            }
        }
        h = h.replace('&hash;', '#');
        return h
    };


ale nie rozumiem co one robią, czy ktoś mógłby rzucić okiem i wyjaśnić mi algorytm, potrzebuję przepisać to na PHP, tekst do mieszania {a |synonim a} będzie zwalidowany, z tym sobie poradzę, więc można by opuścić fragmenty walidujące
atomas
Posty: 5
Dołączył(a): 08.03.2016

Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 51980 zarejestrowanych użytkowników.
Najnowszy użytkownik: Play


Nasi użytkownicy napisali:

  • 938331 wiadomości
  • w 247849 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)