Форум сайта python.su
Здравствуйте. Программа “угадай мелодию” для бота в Телеграмме.
1 функция: подключаемся к БД, берем строку и бот отправляет аудиофайл с вариантами ответа игроку.
2 функция: проверяет здесь ли игрок и проверяется правильный ли ответ от игрока или нет
Имеется 2 вопроса
1. Как зациклить бота, чтобы он выдавал песни по очереди допустим 4 раза и чтобы эти песни были уникальными. (Пытался через for и while, но что-то делаю не так)
2. (Необязательно) Касается библиотеки ‘telebot’, как создать кнопки, хочет ли игрок продолжить игру или нет и чтобы эти кнопки пропали после выбора.
Если не сложно, то с объяснениями) Заранее спасибо.
@bot.message_handler(commands=['game']) def game(message): db_worker = SQLighter(config.database_name) row = db_worker.select_single(random.randint(1, utils.get_rows_count())) markup = utils.generate_markup(row[2], row[3]) bot.send_voice(message.chat.id, row[1], reply_markup=markup) utils.set_user_game(message.chat.id, row[2]) db_worker.close() @bot.message_handler(func=lambda message: True, content_types=['text']) def check_answer(message): answer = utils.get_answer_for_user(message.chat.id) if not answer: bot.send_message(message.chat.id, 'Чтобы начать игру, выберите команду /game') else: keyboard_hider = types.ReplyKeyboardRemove() if message.text == answer: bot.send_message(message.chat.id, 'Верно!', reply_markup=keyboard_hider) else: bot.send_message(message.chat.id, 'Неправильно', reply_markup=keyboard_hider) utils.finish_user_game(message.chat.id) if __name__ == '__main__': utils.count_rows() random.seed() bot.polling(none_stop=True)
Отредактировано gogilmogil (Окт. 12, 2017 17:14:36)
Офлайн