Skip to content

Jut1S/Java_OOP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java_OOP

Привет, это наш общий репозиторий

Алексей Перевощиков и Булыгин Никита из группы КН-201

Typing SVG

Описание бота на уровне для стартового задания:

  1. При вызове команды "/start" бот появляется и выдаёт пользователю сообщение о своих возможностях.
  2. При вызове команды "/help" бот в любой момент снова выводит это сообщение.
  3. При попытке обращения к боту по любому тексту, кроме ключевых слов (жанров литературы, доступных во всплывающей клавиатуре), бот отвечает пользователю собственным сообщением.
  4. При вызове команды "/get" пользователь может получить случайную цитату от бота.
  5. При вызове команды "/genre" пользователь получает сообщение с предложением выбрать жанр литературы из предложенных.
  6. При выборе жанра пользователь получает рекомендации книг данного жанра.

Постановка задачи:

1️⃣Цель задачи

Разработать телеграмм-бот на основе Java, который поддерживает ведение множества диалогов одновременно с разными пользователями и:
  1. возможность голосования за книгу, используя команду /vote. Голосование проводится с 1 по 5 число каждого месяца, о чём написано в соответствующем приветственном сообщении вместе с командой /vote. 5 числа голосование заканчивается и команды больше нельзя использовать. После окончания голосования при попытке использовать команды пользователю будут показываться только итоги голосования.И 1 числа следующего месяца все команды автоматически станут доступны и пользователю будет предложен новый список для голосования. работа команды /vote:
  • Бот должен отправить список из 10 популярных в этом месяце книг, которые он берёт из хранилища книг, в котором был сформирован список на несколько лет вперед в формате "’НАЗВАНИЕ’ - АВТОР".
  • Пользователь может выбрать 3 понравившиеся книги, отправляя боту их номера последовательно после соответствующего сообщения от бота.
  1. запрет повторного голосования.
  • Если пользователь уже проголосовал, бот должен запретить ему повторное голосование.
  • Вместо этого, пользователь может использовать команду /revote для переголосования.
  1. возможность просмотра статистики текущего голосования с помощью команды /voteresults.
  • Бот должен отобразить количество проголосовавших пользователей возле каждой книги в порядке убывания количества голосов для книг из предоставленного для голосования списка

2️⃣ Формулировка

Примеры диалога (в текстовом виде):

U:/vote B: Здравствуйте, добро пожаловать на ежемесячное голосование за “книгу месяца”, которое проводится с 1 по 5 число. Вам предлагается на выбор 10 книг. Пожалуйста, выберите 3 книги из списка популярных книг этого месяца ниже, которые вам нравятся больше всего, это поможет нам определить победителя. После этого сообщения отправьте номер первой наиболее понравившейся книги. 1 “Происхождение” - Дэн Браун 2 “Семь смертей Эвелины Хардкасл” - Стюарт Тёртон 3 “Краткая история почти всего” - Билл Брайсон 4 “Трещина во времени” - Мадлен Л’Энгл 5 “Черный медведь” - Элизабет Берг 6 “Две недели на Луне” - Энди Вейер 7 “Маленький принц” - Антуан де Сент-Экзюпери (переиздание) 8 “В конце рассвета” - Ким Стэнли Робинсон 9 “Во славу” - Дэвид Фостер Уоллес 10 “Что мы оставили” - Клэр Киган U: 4 B: Отправьте номер второй наиболее понравившейся книги U: 1 B: Отправьте номер третьей наиболее понравившейся книги U: 9 B: Спасибо, что приняли участие в голосовании! Ваше мнение будет отражено в итогах голосования. U:/vote B: Если вы пытаетесь проголосовать повторно, то этого сделать нельзя. Если вы хотите переголосовать нажмите /revote

U:/voteresults B: “Происхождение” - Дэн Браун - 27 голосов “Две недели на Луне” - Энди Вейер - 20 голосов “Краткая история почти всего” - Билл Брайсон - 18 голосов “Во славу” - Дэвид Фостер Уоллес - 12 голосов “Семь смертей Эвелины Хардкасл” - Стюарт Тёртон - 9 голосов “Маленький принц” - Антуан де Сент-Экзюпери (переиздание) - 8 голосов “Черный медведь” - Элизабет Берг - 5 голосов “В конце рассвета” - Ким Стэнли Робинсон - 3 голосов “Трещина во времени” - Мадлен Л’Энгл - 1 голосов “Что мы оставили” - Клэр Киган - 0 голосов

(Предположим прошло 5 первых дней месяца) U: /vote (или любая команда для голосования(/revote,/voteresults)) B: Голосование за книгу месяца уже окончено. В этом месяце по итогам голосования читаем: 9 “Во славу” - Дэвид Фостер Уоллес - 43 голосов

Вы можете присоединиться к нам и начать читать вместе! Новое голосование начнётся 1 числа следующего месяца.

3️⃣ Планы

Планируется реализация навыка загадывания загадок ботом, а также обработка ответов пользователя, для сбора общей статистики ответов, несколько уровней сложности, предложение перейти на новый уровень, при ответе верно на все загадки без ошибок на данном уровне.

Игра угадай книгу: бот даёт описание книги, а пользователь должен угадать её название, возможны подсказки автора и года издания.

Голосование за цитату недели/месяца среди пользователей бота и вывод этой цитаты по запросу

Помощь в ведении литературного дневника в виде выдачи краткой информации о запрашивает произведении: главные герои, сюжет, автор, год издания, обозначение к какому из 7 основных сюжетов/тропов сводится данный

About

Repository for Java lessons

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%