Seminar_9_telegram_bots

Задача: при помощи виртуального окружения и PIP реализовать решение задач с прошлых семинаров:

  1. Напишите программу, удаляющую из текста все слова, содержащие "абв".

  2. Создайте программу для игры с конфетами человек против человека.

    Условие задачи: На столе лежит 2021 конфета. Играют два игрока делая ход друг после друга. Первый ход определяется жеребьёвкой. За один ход можно забрать не более чем 28 конфет. Все конфеты оппонента достаются сделавшему последний ход. Сколько конфет нужно взять первому игроку, чтобы забрать все конфеты у своего конкурента?

    a) Добавьте игру против бота

    b) Подумайте как наделить бота "интеллектом"

Homework(Seminar_9)

  1. Создайте программу для игры в ""Крестики-нолики"" при помощи виртуального окружения и PIP

  2. Прикрутить бота к задачам с предыдущего семинара:

  3. Создать калькулятор для работы с рациональными и комплексными числами, организовать меню, добавив в неё систему логирования

  4. Создать телефонный справочник с возможностью импорта и экспорта данных в нескольких форматах.

Run bot

  1. Создать ВО: python -m venv venv (где второй venv имя папки для ВО);
  2. Если используете VSCode активировать ВО:
  • для win: venv\Scripts\activate.bat
  • для linux: sourse venv/bin/activate (где venv/ и т.д. по сути путь до активатора) (если используете PyCharm 3 шаг можно пропустить, насколько понял он автоматом запускает ВО)
  1. Устанавливаем необходимые библиотеки из файла requirements.txt: pip install -r requirements.txt;
  2. В telegramm через fatherbot создаем бота и получаем токен;
  3. В файле config.py необходимо указать токен вашего бота;
  4. Запускаем командой в консоли: python main.py;
  5. в окне telegramma отправляем боту команду /start;
  6. Бот запущен!

Основные возможности bots

bot_1

  1. Реализовано кнопочное меню выбора комманд;
  2. Реализована игра в "конфетки" с рандомным начальным колличеством конфет;
  3. Реализована игра в "крестики-нолики" с кнопочным интерфейсом;
  4. Есть возможно считать простые примеры, через команду "калькулятор" (нет возможности считать комплексные числа);
  5. Реализованно логирование, через встроенную библиотеку.

bot_2

  1. Отсутствует кнопочное меню выбора комманд;
  2. Реализована игра в "крестики-нолики" без кнопочного интерфейса;
  3. Есть возможно считать примеры в том числе с комплексными числами;
  4. Реализованно два логирование:
    • Логирование без использования встроенных библиотек;
    • Логирование с использование встроенной библиотеки(реализовано упрощенно);

bot_3(phonebook)

  1. Отсутствует кнопочное меню выбора комманд;
  2. Реализованы следующии команды:
    • Добавить контакт;
    • Найти контакт;
    • Удалить контакт;
    • Показать справочник;
    • Импортировать справочник(файл необходимо добавлять из определенного пути);
    • Экспортировать файл(два способа: на одной строке; построчный);
    • /help повторно выводить меню на экран
  3. Реализованно логирование без использования встроенных библиотек.