@h1r0ku

Telegram bot как мне это реализовать?

Я хочу сделать чтобы в первые 3 игры, если пользователь выбирал кнопки в последовательности (3,1,2), он побеждал, а в следующих играх победные кнопки были случайными.

Код:
import telebot,config

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=['start'])
def start_message(message):
	msg = bot.send_message(message.from_user.id, 'Напишите сумму ставки.\nВ случае победы ваша ставка <b>утраивается!</b>', parse_mode="HTML")
	bot.register_next_step_handler(msg, enough_stavka)

def enough_stavka(message):
	global stavka
	game_markup = telebot.types.InlineKeyboardMarkup()
	first = telebot.types.InlineKeyboardButton('1⃣', callback_data='first')
	second = telebot.types.InlineKeyboardButton('2⃣', callback_data='second')
	three = telebot.types.InlineKeyboardButton('3⃣', callback_data='three')
	game_markup.row(first,second,three)
	stavka = int(message.text)
	if stavka < 1:
		msg = bot.send_message(message.from_user.id, "Сумма не может быть меньше 1 руб!")
		bot.register_next_step_handler(msg, enough_stavka)
	elif stavka >= 1:
		msg = bot.send_message(message.from_user.id, 'Выберити число:', reply_markup=game_markup, parse_mode="HTML")
		bot.register_next_step_handler(msg, game)

def game(call):
	bot.clear_step_handler_by_chat_id(call.from_user.id)
	again_markup = telebot.types.InlineKeyboardMarkup()
	again = telebot.types.InlineKeyboardButton('Играть ещё', callback_data='again')
	again_markup.row(again)
	if call.data == 'three':
		bot.send_message(call.from_user.id, 'Вы победили! Ваш выигрыш' + str(stavka * 3), reply_markup='again_markup')


if __name__ == '__main__':
	bot.polling()
  • Вопрос задан
  • 414 просмотров
Пригласить эксперта
Ответы на вопрос 1
appliks
@appliks
Работает? Не трогай.
Плохо знаю возможности телеграмм api, но думаю оно не сохраняет эти данные (максимум можно последовательно менять кнопки в зависимости от предыдущей кнопки), поэтому юзай бд (где будут сохранены его команды).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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