Пишу "угадай число" в aiogram для игры в телеграм. message.text в aiogram не работает должным образом. Цикл пропускает повторное срабатывание команды

import logging
import random

from aiogram import types, Bot, Dispatcher, executor
from aiogram.dispatcher import FSMContext
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import State, StatesGroup
from random import choice

logging.basicConfig(level=logging.INFO)

bot = Bot('TOKEN')
memstore = MemoryStorage()
dp = Dispatcher(bot, storage=memstore)

in_game = False
secret_number = 0

@dp.message_handler(commands=['start'], state=None)
async def process_start_command(message: types.Message):
    await bot.send_message(message.chat.id, 'Приветствую! \n Это LDLN бот. Он создал для игры :) \n Хочешь сыграть в "Угадай число?" \n Тебе стоит узнать правила. \nНапиши /help')

@dp.message_handler(commands=['help'], state=None)
async def process_help_message(message: types.Message):
    await bot.send_message(message.chat.id, 'Суть игры заключается в том, чтобы угадать число от 1 до 100 менее чем за 100 попыток. \n Команды доступеные вам: \n /start - запуск бота \n /help - помощь \n /play - начало игры')

@dp.message_handler(commands=['play'], state=None)
async def process_play_message(message: types.Message):
    await bot.send_message(message.chat.id, 'Игра началась! Число загадано! \nПопробуй угадать.')

def choice_random_number():
    return random.randint(1, 100)

@dp.message_handler(lambda x: x.text and x.text.isdigit() and 1 <= int(x.text) <= 100)
async def is_number_the_same_as_bot_choice(message: types.Message):
    attempts = 5
    secret_number = choice_random_number()
    game_id = True
    print(secret_number)

    while game_id == True:
        user_choice = int(message.text)
        if secret_number == user_choice and attempts != 0:
            await bot.send_message(message.chat.id, 'Красава. Ты угадал!')
            game_id = False

        elif secret_number > user_choice and attempts != 0:
            await bot.send_message(message.chat.id, 'Ваше число меньше!')
            attempts -= 1
            await bot.send_message(message.chat.id, f'У вас {attempts} попыток')

        elif secret_number < user_choice and attempts != 0:
            await bot.send_message(message.chat.id, 'Ваше число больше!')
            attempts -= 1
            await bot.send_message(message.chat.id, f'У вас {attempts} попыток')

        elif attempts == 0:
            await bot.send_message(message.chat.id, 'Вы проиграли! Попыток 0!')
            game_id = False

if __name__ == "__main__":
    executor.start_polling(dp, skip_updates=False)

Ответы (0 шт):