# Бот для изучения английского 1. Скачать файл [dictionares.py](https://raw.githubusercontent.com/abekek/SAT-Vocabulary-Telegram-Bot/master/dictionaries.py) и добавить его в папку проекта 2. Создать файл english.py и подготовить основу для бота ```python= import telebot import logging TOKEN = 'TOKEN' bot = # TODO logger = telebot.logger telebot.logger.setLevel(logging.DEBUG) # Outputs debug messages to console. ``` 3. Создайте markup главного меню ```python= from telebot import types main_menu_markup = # TODO main_menu_markup.add(types.KeyboardButton('Learn new words')) # TODO по аналогии добавьте кнопку'Check yourself' ``` 4. Изучите файл dictionaries.py. Сколько в нем переменных? Что каждая из них делает? 5. Импортируйте переменные из dictionaries.py в english.py ```python= from dictionaries import * ``` 6. Создайте обработчик команды /start ```python= @bot.message_handler(???) # TODO def send_welcome(message): # отправьте сообщение 'What do you want to do?' с нужным markup'ом ``` 7. Создайте обработчик для фичи изучения новых слов ```python= # TODO импортируйте модуль random @bot.message_handler(regexp='Learn new words') def learn_words(message): idx = # TODO выберите индекс слова, которое мы будем присылать пользователю answer = # TODO сформируйте текст для пользователя, включите в него само слово, его значение и часть речи bot.send_message() # TODO отправьте сообщение # TODO перейдите в главное меню (register_next_step_handler) ``` 8. Создайте обработчик для фичи самопроверки ```python= @bot.message_handler(regexp='Check yourself') def check_yourself(message): idx_true = # TODO случайное число от 0 до len(words) idx_option1 = # TODO случайное число от 0 до len(words) idx_option2 = # TODO случайное число от 0 до len(words) idx_option3 = # TODO случайное число от 0 до len(words) options = [ words[idx_true], words[idx_option1], words[idx_option2], words[idx_option3] ] options.sort() options_markup = types.ReplyKeyboardMarkup() options_markup.add(types.KeyboardButton(options[0])) options_markup.add(types.KeyboardButton()) # TODO другие опции options_markup.add(types.KeyboardButton()) # TODO другие опции options_markup.add(types.KeyboardButton()) # TODO другие опции question = description[idx_true] bot.send_message(message.chat.id, question, reply_markup=options_markup) ``` 8. Создайте функцию для проверки ответа ```python= def compare_answer(message, idx_true=None): if message.text == words[idx_true]: bot.reply_to(message, '?') # TODO текст else: bot.reply_to(message, '?') # TODO текст bot.register_next_step_handler(???) # TODO ``` 9. В функции `check_yourself` зарегистрируйте обработчик для слудеюущего шага ```python= bot.register_next_step_handler( message, lambda m: compare_answer(m, idx_true) ) ``` 9. Запустите бота