Для этого можно использовать переменную состояния, которая будет определять, в каком режиме находится бот: в режиме отображения загадки или в обычном режиме ожидания действий пользователя.
Пример кода:
```python
import telebot
from telebot import types
bot = telebot.TeleBot("YOUR_API_TOKEN")
is_riddle_mode = False
@bot.message_handler(commands=['start'])
def start(message):
global is_riddle_mode
is_riddle_mode = False
bot.send_message(message.chat.id, "Привет! Я могу загадывать загадки. Нажми на кнопку, чтобы получить загадку.")
@bot.message_handler(func=lambda message: True)
def handle_message(message):
global is_riddle_mode
if is_riddle_mode:
check_answer(message)
else:
show_riddle(message)
def show_riddle(message):
global is_riddle_mode
is_riddle_mode = True
riddle_text = "Загадка: Что можно увидеть с закрытыми глазами?"
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
button = types.KeyboardButton(text="Показать ответ")
keyboard.add(button)
bot.send_message(message.chat.id, riddle_text, reply_markup=keyboard)
def check_answer(message):
global is_riddle_mode
if message.text == "Показать ответ":
bot.send_message(message.chat.id, "Правильный ответ: Мечты")
is_riddle_mode = False
else:
bot.send_message(message.chat.id, "Попробуй еще раз!")
bot.polling()
```
В этом примере при запуске бота пользователю предлагается нажать на кнопку, чтобы получить загадку. После нажатия на кнопку загадка отображается, и при ответе "Показать ответ" бот показывает правильный ответ и выходит из режима проверки ответа, возвращаясь в обычный режим ожидания действий пользователя.