Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2017 17:13:59

gogilmogil
Зарегистрирован: 2017-10-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Зациклить программу с двумя функциями

Здравствуйте. Программа “угадай мелодию” для бота в Телеграмме.
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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version