Chciałem spróbować napisać taki mechanizm, bo czasem z przypadku można się nieźle uśmiać
Na razie wymyśliłem tylko takie coś:
Działanie tego kodu powinno wyglądać następująco:
Każde przechwycone słowo ze zdania przechodzi przez mechanizm losujący, który podmienia jego indeks (będący lokalizacją w ciągu zdania) na przypadkowy z tabeli, która stale losuje inne cyfry ( z przedziału od 1 do 8 ).
Ten kod ma niestety parę minusów.
Po 1 nie działa.
Po 2 liczba słów w zdaniu musi być za każdym razem określona w tabeli.
Po 3 być może pętla przypisuje ten sam indeks do każdego słowa (bo może setTimeout nie nadąża z losowaniem).
Co tu pozmieniać, aby ten kod działał poprawnie ?
Czy da się jakoś pominąć to wpisywanie liczb (odpowiadających ilości słów) za każdym razem do tabeli ?
Funkcja losowanie() jest źle napisana - niepotrzebnie wywołuje ona samą siebie co 1 ms (1 milisekundę).
Sugeruję mieszać słowa poprzez losowe zamiany parami - np. dla 8 słów mieszalibyśmy tak kilka razy, za każdym razem losujemy parę 2 liczb całkowitych (z zakresu od 0 do , dodatkowo dla drugiej takiej liczby możemy sprawdzać czy się nie powtarza), a potem zamieniamy wyrazy będące na wylosowanych pozycjach. I tak kilka razy (ile dokładnie to nie jest ustalone - proponuję coś między połową a cała liczbą słów, ale można i więcej).
Tylko ,że ta funkcja i tak nigdzie nie jest wywoływana. Jeżeli miała by to być nieznaczna zmiana położenia danych wyrazów to sposób podany przez Pablo_Wawa jest dobry, przy całkowitym przeorientowaniu wyrazów można zastosować nieco prostsze rozwiązanie
script type="text/javascript" function wymieszaj() { var txt = "W tym polu musi znajdowac sie osiem slow"; var tablica = txt.split(' '); var pusta = [];