Для создания простой игры-вопросника в телеграм-боте с использованием JavaScript и библиотеки Telegraf, вы можете использовать следующий код:
```javascript
const Telegraf = require('telegraf');
const Extra = require('telegraf/extra');
const Markup = require('telegraf/markup');
const bot = new Telegraf('ваш_API_ключ');
// Вопросы игры
const questions = [
{ question: '2 + 2?', answer: '4' },
{ question: 'Столица Франции?', answer: 'Париж' },
{ question: 'Сколько лет висит Черное море?', answer: 'многовековое' },
// Добавьте здесь другие вопросы
];
bot.start((ctx) => {
ctx.reply('Добро пожаловать в игру! Нажмите на кнопку "Старт", чтобы начать.',
Extra.markup(Markup.inlineKeyboard([
Markup.callbackButton('Старт', 'start')
])));
});
bot.action('start', (ctx) => {
ctx.session.score = 0;
askQuestion(ctx);
});
// Функция для задания вопроса
function askQuestion(ctx) {
const randomQuestion = questions[Math.floor(Math.random() * questions.length)];
ctx.reply(randomQuestion.question,
Extra.markup(Markup.inlineKeyboard([
Markup.callbackButton('Закончить', 'end')
])));
// setTimeout для установки 10-секундного таймера
setTimeout(() => {
ctx.reply(`Время вышло! Правильный ответ: ${randomQuestion.answer}`);
askQuestion(ctx); // Задаем новый вопрос
}, 10000);
}
bot.action('end', (ctx) => {
ctx.reply(`Игра окончена. Ваш счет: ${ctx.session.score}`);
});
bot.hears(/^([^/]+)$/, (ctx) => {
const userAnswer = ctx.message.text.toLowerCase();
const currentQuestion = questions.find(q => q.question.toLowerCase() === userAnswer);
if (currentQuestion) {
ctx.session.score += 1;
ctx.reply('Правильно!');
} else {
ctx.reply('Неправильно!');
}
});
bot.startPolling();
```
В этом коде мы создаем телеграм-бота с использованием библиотеки Telegraf. У нас есть массив вопросов `questions`, каждый из которых содержит вопрос и правильный ответ. Когда пользователь нажимает кнопку "Старт", у нас есть функция `askQuestion`, которая выбирает случайный вопрос, отправляет его пользователю и запускает 10-секундный таймер.
Если пользователь отвечает правильно на вопрос, его счет `score` увеличивается на 1. Если пользователь нажимает кнопку "Закончить", игра останавливается и выводится итоговый счет.
Мы также используем `bot.hears` для проверки ответа пользователя на каждую строку текста. Если ответ совпадает с текущим вопросом, счет увеличивается, и пользователю отправляется сообщение "Правильно!". Если ответ неправильный, отправляется сообщение "Неправильно!".
Вы можете добавить больше вопросов в массив `questions`, чтобы создать игру с большим количеством вопросов. Также не забудьте заменить `'ваш_API_ключ'` на свой собственный API-ключ Telegram Bot.
Надеюсь, это поможет вам создать свою простую игру-вопросник в телеграм-боте с использованием JavaScript и Telegraf!