7️⃣9️⃣ Выдача уникального неповторяющегося ответа.
Сложность: ⭐️ ⭐️

Позволяет выдавать пользователю уникальный неповторяющийся набор ответов.

‼️ Кейс отличается от всех предыдущих, так как объясняет сам концепт реализации задачи. Доработка под свои задачи лежит на ваших плечах. Читайте внимательно и подробно все описания‼️

Для этого нам потребуется:

————————————————

Генерация уникального списка выдачи ответа

��Переменные — Профиль — Пользователи — Создать — Название профиля: randAnswer — тип профиля: объект

��меню — создать — случайный ответ — произвольное описание.

➕ Добавить кнопку — callback — Обновить — пропустить

��Триггеры — Триггеры Раздела — реакции:

⚡️localVarSet — Тип: Число — Название: minNum — Значение: 1

⚡️localVarSet — Тип: Число — Название: maxNum — Значение: 11

⚡️localVarSet
— Тип: Число — Название: quanNum — Значение: 10

⚡️ runScript
function getRND(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
var minNum = qnext.getValue("localVar.minNum", 0);
var maxNum = qnext.getValue("localVar.maxNum", 0);
var quanNum = qnext.getValue("localVar.quanNum", 0);
var numRes = [];
if ((maxNum - minNum) >= quanNum) {
while (numRes.length < quanNum) {
var rndNum = getRND(minNum, maxNum);
var found = false;
for (var i = 0; i < numRes.length; i++) {
if (numRes[i] === rndNum){
found = true;
break;
}
}
if (!found) { numRes[numRes.length]=rndNum; }
}
} else {
numRes[0] = -1;
}
exports.numRes = numRes;

⚡️profileSet — пользователи — randAnswer${localVar.numRes}

⚡️ sendMessage — Текст: Порядок обновлен

————————————————

Выбор ответа из списка для выдачи, и удаление использованного ответа из списка

⚡️ groupReactionsОбработка списка

— ⚡️ localVarSet — список — list = !{profile| name: randAnswer; }

— ⚡️ for${localVar.list}

— — ⚡️ localVarAdd — список — list = ${forItem.value}
��Ограничения — bool — �� — ${forItem.first}

— — ⚡️ localVarAdd — число — answer = ${forItem.value}
��Ограничения — bool — ✅ — ${forItem.first}

— ⚡️ profileSet — пользователи — randAnswer${localVar.list}

————————————————

Выдача ответа пользователю.
‼️ Здесь доступны 2 варианта решения задачи:‼️
1. Упрощенный, но ограниченный суммарно 3900 символов.
2. Расширенный, ограничен только вашей ленью

Упрощенный вариант:

⚡️ sendMessage — Текст: Больше цифр нет :(
(здесь использовано 310 символов)

Расширенный вариант:


⚡️ sendMessage — Текст: Ответ один
��Ограничения — number — ${localVar.answer} = 1

⚡️ sendMessage — Текст: Ответ два
��Ограничения — number — ${localVar.answer} = 2

⚡️ sendMessage — Текст: Ответ три
��Ограничения — number — ${localVar.answer} = 3
👍 1
👎 1
4 1.1K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram