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