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)