shuffleUpdate = function() {
let words = RiTa.tokenize(mutableTxt[0]);
if (rindex == 0) {
shuffle(shuffledArray);
console.log("shuffled ...");
}
let idx = shuffledArray[rindex];
rindex[0] = rindex[0] + 1;
if (rindex[0] + 1 > words.length) {
rindex[0] = 0;
}
let word = words[idx].toLowerCase();
if (word.length < 3) return RiTa.untokenize(words);
let pos = partofs[idx];
let rhymes = RiTa.rhymes(word, { pos });
let sounds = RiTa.soundsLike(word, { pos });
let spells = RiTa.spellsLike(word, { pos });
let similars = [...new Set([...rhymes, ...sounds, ...spells])];
console.log(similars);
if (similars.length < 2) {
console.log("No sims for " + word);
return RiTa.untokenize(words);
}
let next = RiTa.random(similars);
if (next.length > 11) return RiTa.untokenize(words);
if (next.includes(word) || word.includes(next)) {
return RiTa.untokenize(words);
}
if (/[A-Z]/.test(words[idx][0])) {
next = RiTa.capitalize(next);
}
words[idx] = next;
return RiTa.untokenize(words);
}