Создание бота в телеграм с помощью пейтона
Техническое задание О нас: Мы - всемирно известная компания, владеющая многими знаменитыми играми “AE”. Мы планируем выйти на рынок мобильных игр и увеличить свою аудиторию среди пользователей мобильных устройств. Задача: Разработать бота для Telegram, в котором пользователи смогут сыграть в текстовую мини-игру, получить за это очки и поучаствовать в гонке за получение главного приза. Мини-игра должна представлять собой квиз состоящий из пяти вопросов, назначаемых администратором. Во избежание злоупотребления системой, мини-игра будет доступна каждый день ограниченное количество времени. Открывает и закрывает игру администратор с помощью команд в боте. Также администратор создаёт вопросы и варианты ответа с помощью бота. В любой момент пользователь имеет возможность просмотреть таблицу рекордов. В конце каждого дня первые 10 игроков турнирной таблицы получают промокод на 10-ти процентную скидку в нашем магазине, после чего турнирная таблица обновляется Требования: 1 Бот должен быть разработан на языке программирования Python, с использованием Telegram API и какой-либо базы данных для хранения информации (например, SQLite). 2 Для аутентификации администратора, бот должен проверять введенный пароль. В случае совпадения, пользователь получит статус администратора. 3. Администратор должен иметь возможность создавать вопросы с вариантами ответов с помощью команды /questions. Вопросов в опросе должно быть ровно 5, а вариантов ответа на каждый вопрос - ровно 4. 4. Бот должен иметь возможность запускать и останавливать игру с помощью команд /startgame и /stopgame соответственно. При запуске игры, пользователи должны получать уведомление о ее начале. 5. Пользователи должны иметь возможность принять участие в игре до ее окончания. Как только игра закрыта, ответы перестают приниматься, и пользователи получают соответствующее уведомление. 6. Бот должен иметь возможность отслеживать время, потраченное пользователями на ответы, и подсчитывать их очки. Очки считаются, как количество правильных ответов, деленное на потраченное время. 7. Пользователи должны иметь возможность просмотреть таблицу рекордов, где будут отображаться 10 лучших игроков. Таблица рекордов должна обновляться каждый день и исчезать после выдачи промокодов. 8. При завершении каждого дня, первые 10 игроков турнирной таблицы должны полчатьу промокод на 10-ти процентную скидку в магазине. Все очки пользователей должны обнуляться. 9. Бот должен быть реализован таким образом, чтобы избежать злоупотребления системой. Для этого, мини-игра должна быть доступна каждый день только в течение ограниченного времени. Не функциональные требования: 1. Бот должен быть оптимизирован для быстрого отклика и высокой производительности. 2. Бот должен иметь стабильную работу и быть устойчивым к возможным сбоям. 3. Код должен быть хорошо структурирован и читаем для облегчения возможного развития и поддержки. 4. Безопасность данных пользователей должна быть обеспечена. Входные данные для бота: 1. Команда /start - начало диалога с ботом. 2. Команда /admin - для аутентификации администратора. 3. Команда /questions - для создания вопросов с вариантами ответов. 4. Команда /startgame - для запуска игры. 5. Команда /stopgame - для остановки игры. 6. Команда /close - для подведения итогов дня и выдачи промокодов. 7. Ответы пользователя на вопросы квиза. Выходные данные от бота: 1. Приветственное сообщение после команды /start. 2. Статус администратора после команды /admin . 3. Уведомление о начале игры при команде /startgame. 4. Уведомление о закрытии игры при команде /stopgame. 5. Уведомление о необходимости ожидания начала или окончания игры при попытке ответить вне этого временного интервала. 6. Таблица рекордов после команды /close. 7 Промокоды для первых 10 игроков таблицы рекордов после команды /close
Код тут не поместится - залил на сайт: https://pastebin.com/jnsWjEGb
ТЗ есть. Вперед и с песней.