Телеграмм-бот для создания игры "Узнай свой город"
Заказать уникальную дипломную работу- 41 41 страница
- 24 + 24 источника
- Добавлена 26.02.2023
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Введение 3
1 Описание предметной области 5
1.1 Викторины 5
1.2 Способы организации викторин 6
1.3 Чат бот, как способ организации викторин 8
2 Проектирование программного обеспечения 12
2.1 UML диаграммы 12
2.1.1 Диаграмма прецендентов 13
2.1.2 Диаграмма состояний 14
2.1.3 Диаграмма классов 15
2.1.4 Диаграмма деятельности 16
2.2 Проектирование базы данных 17
3 Разработка программного обеспечения 21
3.1 Python 21
3.2 PyCharm 23
3.3 Библиотека Pytelegrambotapi 26
3.4 SQLite 31
3.5 Разработка викторины 33
Заключение 35
Список использованных источников 40
Любое имя функции разрешено с обработчиками сообщений. Функция должна принимать не более одного аргумента, который будет сообщением, которое функция должна обработать. Filters представляет собой список аргументов ключевого слова. Фильтр объявляется следующим образом: name=argument. Один обработчик может иметь несколько фильтров. TeleBot поддерживает следующие фильтры(см. таблицу 2) [20].Таблица 2 - Имя таблицыИмяАргументыУсловиеСontent_typesСписок строк(по умолчанию[‘text’])True, если message.content_type находится в списке строкРегулярное выражениеРегулярное выражение в виде строкиTrue если re.search(regexp_arg) возвращает True и message_type == 'textКомандыСписок строкTrue если message.content_type == ‘text’ и message Chat_typesСписок типа чатовTrue, если message.chat_type, находится в фильтреФункция Функция(лямбда или ссылка на функцию)True, если функция(или лямбда возвращают True)3.4 SQLite(обосновать, почему выбрали её)SQLite — система управления базами данных, написанная на языке программирования C. Это СУБД, которую разработчики программного обеспечения встраивают в свои приложения. Таким образом, она принадлежит к семейству встроенных баз данных. Это широко распространенная СУБД так как она используется несколькими ведущими веб-браузерами, операционными системами, мобильными телефонами и другими встроенными системами. Многие языки программирования имеют привязки к библиотеке SQLite. По синтаксису похоже на некоторые диалекты SQL, но не требует проверки типов. Это означает, что можно, например, вставить строку в столбец, определенный как целое число.В нашем случае удобно, что библиотека для взаимодействия с SQLite является одной из стандартных библиотек языка Python. SQLite был разработан, чтобы позволить программе работать без установки системы управления БД, без администратора БД. В отличие от клиент-серверных систем управления БД, SQLite не имеет автономных процессов, с которыми взаимодействует прикладная программа. Вместо этого компоновщик интегрирует библиотеку SQLite — статически или динамически — в прикладную программу, которая использует функциональность SQLite посредством простых вызовов функций, уменьшая задержку в операциях с БД.SQLite хранит всю БД в виде одного кроссплатформенного файла на хост-компьютере, что позволяет нескольким процессам или потокам одновременно обращаться к одной и той же базе данных. Она реализует этот простой дизайн, блокируя файл базы данных во время записи. Для просмотра, редактирования и даже создания баз данных на основе SQLite можно воспользоваться программой SQLite Studio.SQLiteStudio не нужно устанавливать. Имеется портативная версия, с помощью которой начать редактировать SQLite БД можно с легкостью. Поддерживаются следующие расширения: *.db, *.sdb, *.sqlite или *.db, и даже CSV и dBase. Используя Редактор запросов SQL, можно создать сценарий SQL и сразу выполнить его.Разработка проекта началась в начале 2007 года. Разработчик искал какой-нибудь SQLite-менеджер, которым легко пользоваться. Ему нужно было быстро создать таблицу с возможностью поместить в нее данные. Он не нашел то, что искал и решил создать собственную, так и появился SqliteStudio.SQLiteStudio первой версии имела очень простой графический интерфейс с сеткой для ввода данных.Первая версия представила поддержку SQLite 2, Tcl/Tk 8.5 (со сглаживанием, которого не было в версии 1.0.0), а также много других функций. Вторая версия внедрила более умное завершение синтаксиса, подсветку синтаксических ошибок, красивый принтер для SQL-кода, поддержку перетаскивания и многое другое. Тогда первые в SqliteStudio появился парсер кода, и поддержка Mac OS X.SQLite Studio следующей версии не добавила чего-то уж прямо нового, но проработала множество второстепенных функций второй версии, а исходники стало легче поддерживать. Рисунок 16 - Интерфейс SQLite StudioВ последствие было принято решение сменить язык разработки и перейти на ЯП C++ и его библиотеку Qt. В марте 2013 года началась работа над третьей версией уже на новом ЯП, которая была выпущена в этом же году.3.5 Разработка викториныВ начале нужно создать в pycharm файл с расширением py. Это и будет наш основной python файл.Стоит отметить, что принято в отдельном файле указывать токен, а потом этот файл импортировать в основной, создадим auth_data.py.Рисунок 17 - auth_data.pyДалее в начале файла main нужно указать библиотеки с которыми будем работать.Рисунок 18 - Импорт библиотекЧат-бот должен уметь отправлять запросы Телеграм-серверу и получать от него информацию о новых сообщениях. За это будет отвечать библиотека pyTelegramBotAPI. При регистрации в боте мы будем вносить данные пользователя в базу данных rating, таблицу top, которая содержит поля имя, id пользователя, текущий вопрос и количество баллов у пользователя.При запуске чат-бота мы будем пытаться обратиться к данной БД, и при ее отсутствии будем создавать её.Рисунок 19 - Поиск базы данных с рейтингом и её создание в случае отсутствияРисунок 20 - Функции для создания таблицы с рейтингом игроковРис 21 - Алгоритм добавления пользователя и приветствиеРисунок 22 - Приветствие пользователя и добавление его в базу данныхПри удачном выполнении всех операция разработчику в консоль выводятся сообщения об успешном создании БД, чат-бот получает через свойства отправленного сообщения имя пользователя, а игроку выводится приветствие и уведомление о его добавлении в базу данных. Рисунок 23 - Реализация разметки при ответе на вопросРис 24 - Получение вопроса и всем с ним связанных атрибутов из БД questionsДалее автоматически чат-бот выводит последовательно вопросы по очереди с соответствующей разметкой и по нажатию на кнопки уведомляет пользователя о правильном или неправильном ответе на вопрос.Рисунок 25 - 1ый вопрос от ботаПри отправке пользователем команды ‘rate’ бот выдаёт пользователю список всех игроков и их количество очков.Стоит заметить, что чат-бот работает только во время запущенного сеанса в интерпретаторе.ЗАКЛЮЧЕНИЕВ данной работе было рассмотрено концептуальное описание, проектирование и дальнейшая разработка телеграм-бота. На данный момент в нём была разработана минимальная функциональность, заключающаяся в:- регистрации пользователя;- выдача пользователю вопросов;- считывание ответов;-реакция на положительный или отрицательный ответ, с последующей записью в БД исправления количества очков в случае правильного ответа;- выдача пользователю рейтинга по запросу.Но в целом по меркам опытных разработчиков чат-ботов наш чат-бот далёк от идеала и есть ещё ряд деталей, которые стоит переделать или улучшить.Во-первых как уже было замечено выше, наш чат-бот работает только во время его исполнения в интерпретаторе. Это исправляется его размещением на сервере. Для этих целей хорошо подойдет Heroku. Но бесплатная версия работает только определённое количество часов( хотя для студентов можно запустить сервер на внушительное время). Но для более серьёзных целей, или даже коммерческих следует арендовать платный сервер.Во-вторых мы использовали самую простую версию для управления базами данных. Хорошим вариантом для использования в больших и сложных проектах является PostgreSQL.Самой хорошей библиотекой на Python считается aiogram. Она асинхронная, использует декораторы и содержит удобные инструменты для разработки. Rocketgram тоже неплох, но он давно не обновлялся. Иногда чат-ботов пишут на JavaScript, тогда используется Telegraf. Библиотеки существуют и на других ЯП, но редко используются.Если нужно использовать Telegram API, стоит воспользоваться Python'овскими Telethon и Pyrogram.В целом чат-бот работоспособен и неплох, как прототип для дальнейшего улучшения и внедрения в более сложный проект.В ходе проведённого анализа проблемной области было установлено, что на данный момент чат-боты являются технологией, зарекомендовавшей себя во многих сферах человеческой жизни, но в первую очередь это маркетинг и продажи. Тем не менее при их помощи можно автоматизировать многие задачи, например сбор какой-либо информации от пользователей, возможность создания развлекательного и познавательного контента.В результате работы были достигнуты и выполнены все поставленные задачи: была проанализирована предметная область, описана перспективность её развития; был описан и разработан чат-бот, были изучены различные подходы разработки и проектирования, был сделан и обоснован выбор языка программирования, библиотек и среды разработки, было реализовано готовое к использованию программное обеспечение.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВBloggersideas: – URL:https://www.bloggersideas.com/ru/chatbot-statistics/- (дата обращения: 05.11.2022). – Текст: электронный.Телеграм: – URL:https://core.telegram.org/bots- (дата обращения: 05.11.2022). – Текст: электронный.Гради Буч, Джеймс Рамбо, Ивар Ялмар Якобсон, Язык UML. Руководство пользователя / 2-е изд.: Пер. с англ. Н. Мухин. - Москва: ДМК Пресс. - 2006. - С. 496. - ISBN 5-94074-334-X.0Применение UML 2.0 и шаблонов проектирования : введение в объективно-ориентированный анализ, проектирование и итеративную разработку / Крэг Ларман ; предисл. Филиппа Крачтена ; [пер. с англ. и ред. А.Ю. Шелестова]. - 3-е изд. - Москва [и др.] : Вильямс, 2007. - 727 с. : ил., табл.; 24 см.; ISBN 978-5-8459-1185-8SimilarWeb Ltd: – URL:https://www.similarweb.com/corp/ru/blog/research-ru/market-research-ru/worldwide-messaging-apps/- (дата обращения: 05.11.2022). – Текст: электронный.Statista: – URL:https://www.statista.com/statistics/258749/most-popular-global-mobile-messenger-apps/- (дата обращения: 05.11.2022). – Текст: электронный.Хабр: – URL:https://habr.com/ru/post/504126/- (дата обращения: 05.11.2022). – Текст: электронный.Новости мэйлру: – URL:https://mcs.mail.ru/blog/python-ne-stanet-yazykom-programmirovaniya-budushchego- (дата обращения: 05.11.2022). – Текст: электронный.Otus: – URL:https://otus.ru/nest/post/1547/- (дата обращения: 05.11.2022). – Текст: электронный. kdnuggets: – URL:https://www.kdnuggets.com/2018/12/most-popular-python-ide-editor.html- (дата обращения: 05.11.2022). – Текст: электронный.reptilicus: – URL:https://reptilicus.net/obzor-luchshih-sposobov-kak-vzlomat-telegram/- (дата обращения: 05.11.2022). – Текст: электронный.Газета.ру: – URL:https://www.gazeta.ru/tech/news/2022/05/15/17742176.shtml- (дата обращения: 05.11.2022). – Текст: электронный.Издание “Хакер”: – URL:https://xakep.ru/2021/11/28/python-telegram-bots/- (дата обращения: 05.11.2022). – Текст: электронный.Издание “Тинькофф”: – URL:https://journal.tinkoff.ru/short/telegram-bots/- (дата обращения: 05.11.2022). – Текст: электронный.Хабр: – URL:https://habr.com/ru/post/429638/- (дата обращения: 05.11.2022). – Текст: электронный.Хабр: – URL:https://habr.com/ru/post/543676/- (дата обращения: 05.11.2022). – Текст: электронный.Хабр: – URL:https://habr.com/ru/post/552788/- (дата обращения: 05.11.2022). – Текст: электронный.Хабр: – URL:https://habr.com/ru/post/580408/- (дата обращения: 05.11.2022). – Текст: электронный.Хабр: – URL:https://habr.com/ru/post/655965/- (дата обращения: 05.11.2022). – Текст: электронный.PyPi: – URL:https://pypi.org/project/pyTelegramBotAPI/- (дата обращения: 05.11.2022). – Текст: электронный.https://xn----btbcfzgflvfabrih2eye.xn--p1ai/doc/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B0%20(%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D1%87%D0%B0%D1%81%D1%82%D1%8C)%20-%20%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD%D0%B5%D0%BD%D0%BA%D0%BE%20%D0%A1.%D0%9D.pdfУшаков Д.Н. Большой толковый словарь современного русского языка: 180000 слов и словосочетаний / Д. Н. Ушаков. - М. : Альта-Принт [и др.], 2008. - 1239 c.Ефремова Т.Ф. Новый словарь русского языка. Толково-образовательный.- М.: Рус. яз. 2000.- в 2 т.- 1209 с. - (Б-ка словарей рус. яз)Типы викторин -https://viquiz.ru/wiki/raznovidnosty-voprosov-viktoriny/
2. Телеграм: – URL: https://core.telegram.org/bots - (дата обращения: 05.11.2022). – Текст: электронный.
3. Гради Буч, Джеймс Рамбо, Ивар Ялмар Якобсон, Язык UML. Руководство пользователя / 2-е изд.: Пер. с англ. Н. Мухин. - Москва: ДМК Пресс. - 2006. - С. 496. - ISBN 5-94074-334-X.0
4. Применение UML 2.0 и шаблонов проектирования : введение в объективно-ориентированный анализ, проектирование и итеративную разработку / Крэг Ларман ; предисл. Филиппа Крачтена ; [пер. с англ. и ред. А.Ю. Шелестова]. - 3-е изд. - Москва [и др.] : Вильямс, 2007. - 727 с. : ил., табл.; 24 см.; ISBN 978-5-8459-1185-8
5. SimilarWeb Ltd: – URL: https://www.similarweb.com/corp/ru/blog/research-ru/market-research-ru/worldwide-messaging-apps/ - (дата обращения: 05.11.2022). – Текст: электронный.
6. Statista: – URL: https://www.statista.com/statistics/258749/most-popular-global-mobile-messenger-apps/ - (дата обращения: 05.11.2022). – Текст: электронный.
7. Хабр: – URL: https://habr.com/ru/post/504126/ - (дата обращения: 05.11.2022). – Текст: электронный.
8. Новости мэйлру: – URL: https://mcs.mail.ru/blog/python-ne-stanet-yazykom-programmirovaniya-budushchego - (дата обращения: 05.11.2022). – Текст: электронный.
9. Otus: – URL: https://otus.ru/nest/post/1547/ - (дата обращения: 05.11.2022). – Текст: электронный.
10. kdnuggets: – URL: https://www.kdnuggets.com/2018/12/most-popular-python-ide-editor.html - (дата обращения: 05.11.2022). – Текст: электронный.
11. reptilicus: – URL: https://reptilicus.net/obzor-luchshih-sposobov-kak-vzlomat-telegram/ - (дата обращения: 05.11.2022). – Текст: электронный.
12. Газета.ру: – URL: https://www.gazeta.ru/tech/news/2022/05/15/17742176.shtml - (дата обращения: 05.11.2022). – Текст: электронный.
13. Издание “Хакер”: – URL: https://xakep.ru/2021/11/28/python-telegram-bots/ - (дата обращения: 05.11.2022). – Текст: электронный.
14. Издание “Тинькофф”: – URL: https://journal.tinkoff.ru/short/telegram-bots/ - (дата обращения: 05.11.2022). – Текст: электронный.
15. Хабр: – URL: https://habr.com/ru/post/429638/ - (дата обращения: 05.11.2022). – Текст: электронный.
16. Хабр: – URL: https://habr.com/ru/post/543676/ - (дата обращения: 05.11.2022). – Текст: электронный.
17. Хабр: – URL: https://habr.com/ru/post/552788/ - (дата обращения: 05.11.2022). – Текст: электронный.
18. Хабр: – URL: https://habr.com/ru/post/580408/ - (дата обращения: 05.11.2022). – Текст: электронный.
19. Хабр: – URL: https://habr.com/ru/post/655965/ - (дата обращения: 05.11.2022). – Текст: электронный.
20. PyPi: – URL: https://pypi.org/project/pyTelegramBotAPI/ - (дата обращения: 05.11.2022). – Текст: электронный.
21. https://xn----btbcfzgflvfabrih2eye.xn--p1ai/doc/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B0%20(%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D1%87%D0%B0%D1%81%D1%82%D1%8C)%20-%20%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD%D0%B5%D0%BD%D0%BA%D0%BE%20%D0%A1.%D0%9D.pdf
22. Ушаков Д.Н. Большой толковый словарь современного русского языка: 180000 слов и словосочетаний / Д. Н. Ушаков. - М. : Альта-Принт [и др.], 2008. - 1239 c.
23. Ефремова Т.Ф. Новый словарь русского языка. Толково-образовательный.- М.: Рус. яз. 2000.- в 2 т.- 1209 с. - (Б-ка словарей рус. яз)
24. Типы викторин -https://viquiz.ru/wiki/raznovidnosty-voprosov-viktoriny/
Вопрос-ответ:
Какой смысл игры "Узнай свой город"?
Цель игры "Узнай свой город" заключается в том, чтобы узнать больше информации о своем городе. Игра предлагает вопросы, касающиеся различных аспектов города, таких как история, достопримечательности, культура и т. д. Ответив на вопросы, игроки учатся больше о своем городе и могут проверить свои знания.
Как можно создать викторину для игры "Узнай свой город"?
Для создания викторины в игре "Узнай свой город" можно воспользоваться телеграмм ботом. Бот предоставляет возможность задавать вопросы и получать ответы от игроков. Также можно добавить различные подсказки и бонусы, чтобы сделать игру более интересной. Вопросы и ответы могут быть предварительно подготовлены или генерироваться случайным образом.
Каким образом можно организовать викторину в игре "Узнай свой город"?
В игре "Узнай свой город" можно организовать викторину различными способами. Например, можно предоставить игрокам набор вопросов, из которых они выбирают один или несколько для ответа. Можно организовать игру в формате команд, где игроки соревнуются друг с другом. Также можно добавить режим соперничества с компьютером или с другими игроками онлайн.
Чем чат-бот полезен для организации викторин в игре "Узнай свой город"?
Чат-бот является полезным инструментом для организации викторин в игре "Узнай свой город". Бот может автоматически задавать вопросы и получать ответы от игроков без участия человека-викторинщика. Это позволяет проводить викторины в любое время, удобное для игроков. Бот может также сохранять результаты игры и предоставлять статистику по игрокам.
Какие UML диаграммы используются при проектировании программного обеспечения для игры "Узнай свой город"?
При проектировании программного обеспечения для игры "Узнай свой город" могут использоваться следующие UML диаграммы: диаграмма прецедентов, диаграмма состояний, диаграмма классов и диаграмма деятельности. Диаграмма прецедентов используется для описания функциональности системы, диаграмма состояний - для моделирования поведения объектов, диаграмма классов - для описания структуры системы, а диаграмма деятельности - для описания последовательности действий в системе.
Какие обозначения и сокращения используются в телеграмм боте для создания игры "Узнай свой город"?
В телеграмм боте для создания игры "Узнай свой город" используются следующие обозначения и сокращения: 2 - Второй уровень, 3 - Третий уровень, 1 - Первый уровень.
Что это за игра "Узнай свой город" и как она работает?
Игра "Узнай свой город" - это телеграмм бот, который задает вопросы о различных городах мира и игроки должны угадать правильный ответ. Для этого бот использует викторины и обозначения для уровней сложности.
Как организуются викторины в телеграмм боте "Узнай свой город"?
Викторины в телеграмм боте "Узнай свой город" организуются путем задания вопросов о городах и предоставления нескольких вариантов ответов. Игроку нужно выбрать правильный ответ из предложенных вариантов.
Что такое UML диаграммы и как они используются в проектировании программного обеспечения?
UML диаграммы - это графические инструменты для визуализации и проектирования программного обеспечения. Они помогают разработчикам лучше понять структуру и взаимодействие компонентов системы, а также описать ее функциональные и нефункциональные аспекты.
Какими диаграммами UML можно воспользоваться при проектировании программного обеспечения?
При проектировании программного обеспечения можно использовать различные диаграммы UML, такие как диаграмма прецедентов, диаграмма состояний, диаграмма классов и диаграмма деятельности. Каждая из них позволяет представить определенные аспекты функционирования и взаимодействия системы.
Для чего нужен телеграмм бот "Узнай свой город"?
Телеграмм бот "Узнай свой город" предназначен для создания игры, в которой пользователь сможет проверить свои знания о городах и странах.
Как можно организовать викторины с помощью чат бота?
Викторины могут быть организованы с помощью чат бота, отправляя пользователям вопросы и проверяя их ответы. Бот может автоматически оценивать ответы и выдавать пользователю результаты.