Мой Твистер - навык для Алисы
29 июня 2026
Как-то с детьми втроём играли в «Твистер», но некому было крутить стрелку. Если кто-то будет крутить, играют всего лишь двое - это довольно скучно. Тогда и родилась мысль: а почему бы Алисе из Яндекса не крутить эту самую стрелку? У неё же нет ног.

Чтобы запустить навык, скажите: Алиса, запусти навык «Мой Твистер» (или перейдите по
ссылке Мой Твистер).

А дальше — наслаждайтесь игрой, периодически говоря: Дальше.

Под капотом
Под капотом — сервер на Node.js, который принимает POST-запрос с телом вида:
request = {
meta: {
// ...
},
session: {
// ...
},
request: {
original_utterance: "Пользовательский ввод",
// ...
},
version: "1.0"
}
Здесь важно поле request.original_utterance. В зависимости от его значения:
'ping'— отвечаемresponse: { text: 'OK', end_session: true }'""'(пусто) — отвечаем приветствиемresponse: { text: '<приветствие>', end_session: false }- всё остальное — отвечаем согласно вашей логике, например:
const a = ['Левая', 'Правая'];
const b = ['рука', 'нога'];
const c = ['на'];
const d = ['желтый', 'красный', 'синий', 'зеленый'];
const e = ['круг'];
const answer = `${sample(a)} ${sample(b)} ${sample(c)} ${sample(d)} ${sample(e)}`;
res.send({
version, session,
response: {
text: answer, buttons: [], end_session: isEndSession
}
}).status(200);
Несколько советов:
- приводите все к одному регистру — так проще искать совпадения
- при проверке
utteranceдобавляйте синонимы (например,['дальше', 'продолжить', 'продолжать', 'продолжай']) - если не удалось распознать команду, попросите пользователя повторить или переформулировать
Исходный код — на GitHub.