Решил создать простенького телеграм бота с игрой "камень, ножницы бумага".
Сам бот работает корректно, только вот после того как ты отвечаешь боту "да" на "Хотите ли вы сыграть еще" он не реагирует, для того чтобы он начал игру нужно написать что-то еще раз. Код выложил ниже
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет, готов начать игру?')
bot.register_next_step_handler(message, new_game)
@bot.message_handler()
def new_game(message):
if message.text.lower() != 'да':
bot.send_message(message.chat.id, 'Прощай.. (ты всегда можешь сыграть, написав Да)')
else:
markup = types.ReplyKeyboardMarkup()
rock = types.KeyboardButton('Камень?')
scissors = types.KeyboardButton('Ножницы')
paper = types.KeyboardButton('Бумага')
markup.row(rock)
markup.row(scissors, paper)
bot.send_message(message.chat.id, 'Камень?, ножницы или бумага?', reply_markup=markup)
bot.register_next_step_handler(message, statements)
def statements(message):
if message.text not in choice:
bot.send_message(message.chat.id, 'Ошибка! Необходимо нажимать только на кнопки!')
bot.send_message(message.chat.id, 'Хотите сыграть еще раз?')
bot.register_next_step_handler(message, retry)
def retry(message):
if message.text.lower() != 'да':
bot.send_message(message.chat.id, 'Прощай.. (ты всегда можешь сыграть еще с помощью команды /start)')
bot.delete_state(message.from_user.id, message.chat.id)
else:
#bot.register_next_step_handler(message, new_game)
bot.delete_state(message.from_user.id, message.chat.id)
new_game(message)
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет, готов начать игру?')
bot.register_next_step_handler(message, new_game)
@bot.message_handler()
def new_game(message):
markup = types.ReplyKeyboardMarkup()
rock = types.KeyboardButton('Камень?')
scissors = types.KeyboardButton('Ножницы')
paper = types.KeyboardButton('Бумага')
markup.row(rock)
markup.row(scissors, paper)
bot.send_message(message.chat.id, 'Камень?, ножницы или бумага?', reply_markup=markup)
bot.register_next_step_handler(message, statements)
def statements(message):
computer = random.choice(choice) # Выбор компьютера происходит здесь
if message.text not in choice:
bot.send_message(message.chat.id, 'Ошибка! Необходимо нажимать только на кнопки!')