@LinaThePython
Решила запустить своего бота

Как реализовать викторину телеграмм боту?

Привет!
Планирую создать викторину, которая будет запускаться по определенной кнопке.
Как её реализовать?
Появляется текст и четыре кнопки (клавиатура не проблема). Текст необходимо брать из бд и отправлять сообщением. Пользователь нажимает на одну из кнопок и приходит сообщение - правильный/неправильный это ответ.
И сразу же появляется новый вопрос с той же клавиатурой, но уже с другой правильной буквой.
Как правильно реализовать это?
  • Вопрос задан
  • 1185 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Создаёте БД с колонками:
id ,вопрос, правильный ответ, неправильный ответ
Создаёте callback-кнопку, при нажатии на которую вытягиваются все вопросы из БД и 1 случайный из них выводите пользователю, выглядит примерно так:
questions = db.execute('SELECT * FROM QUESTIONS')
question = random.choice(questions)

Что-бы избежать повторения вопросов лучше создать таблицу с пользователями, куда будут заноситься id вопросов на которые пользователь дал ответ, тогда нужно будет делать запрос к ней и брать данные из таблицы с вопросами с учетом данных ответов:
answered_ids = db.execute('SELECT answered_ids FROM USERS WHERE (user_id IS ?)', (callback_query.from_user.id,))
questions = db.execute('SELECT * FROM QUESTIONS WHERE id != IN(?)', (answered_ids,))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы