# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Описание игры Небоскребы, для которой мы будем создавать систему автоматического управления сайтом, или проще - веббота на языке C#. Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт] Научился: Нашел сайт с игрой. Зарегистрировался. Поиграл - немного изучил правили и интерфейс программы. Сложности: Самым сложным было зарегистрироваться. Комментарии: Замечаний нет. Будущий бот мне нравится. Честно говоря — не ожидал! Весь в предвкушении! :-) |
|||||
2 | Планирование функций |
|
|||
Напишем список функций, проанализируем какой необходим алгоритм для будущего Робота Нарисуем блок-схему. Вопрос: Какие ещё функции нужно добавить в список? Отчёт отправил: 9612. Олег Михайлович Выполнено за 56 мин. [Показать отчёт] Научился: Научился создавать список функций и рисовать блок-схему будущего проекта. В список нужно добавить фукцию "Собрать чаевые" Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
3 | Подготовка формы |
|
|||
Создадим первую форму и начнем её заполнять необходимыми элементами. Задание: Написать метод изменения страницы браузера из адресной строки Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 19 мин. [Показать отчёт] Научился: Научился добавлять в форму элементы WebBrowser, TabCantrol, поля для логина и пароля. Научился создавать метод изменения адресной строки из браузера и создавать метод изменения страницы браузера из адресной строки. Сложности: Написать метод изменения страницы браузера из адресной строки. Комментарии: Замечаний нет. |
|||||
4 | Проверяем авторизацию |
|
|||
Добавим проверку авторизации. Допишем, если авторизации нет, то переходить на страницу авторизации Задание: Добавить кнопку Авторизация. Написать метод проверки авторизации Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт] Научился: Научился проверять авторизацию через написание соответствующего метода и кнопки. Добавлять переход на страницу авторизации, если ее нет. Добавил кнопку Авторизация, а вот с методом к ней не совсем понятно. Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
5 | Авторизация |
|
|||
1. Создаем метод проверки авторизации возвращающий логическое значение (True / False) 2. Пишем авторизацию с заполнением полей Задание: Приложить скрин со скрытым паролем. Отчёт отправил: 9612. Олег Михайлович Выполнено за 40 мин. [Показать отчёт] Научился: Научился создавать метод проверки авторизации и научился методу авторизации с заполнением полей и автоматическим нажатием нужной кнопки. Научился скрывать пароль визуально. Сложности: Сложностей нет. Комментарии: Замечаний нет. Огромное спасибо — все очень наглядно и доступно. |
|||||
6 | Робот приступает к действиям |
|
|||
1. Разбираем действия "Собрать выручку" 2. Переходим на Собирание выручки 3. Получаем первую ссылку на сбор выручки 4. Кликаем по ссылке(переходим по ней) 5. Тоже самое проделываем с "Выложить товар" Задание: Написать список ссылок, для перехода на другие функции Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт] Научился: Научился создавать методы для сбора выручки и для выкладки товара. Домашнее Задание: Закупить товар:http://nebo.mobi/floors/0/2 Поднять лифт:http://nebo.mobi/lift Сложности: Сложностей нет. Комментарии: Замечаний нет. Все очень доступно и понятно. СПАСИБО! |
|||||
7 | Робот ходит за покупками |
|
|||
1. Разбираем закупку 2. Пишем метод перехода на Закупить 3. Дописываем условие для "Закупить товар" 4. Объединяем три метода в один Задание: При смене метода изменять название кнопки Отчёт отправил: 9612. Олег Михайлович Выполнено за 28 мин. [Показать отчёт] Научился: Научился создавать метод Закупка товара, объединять три метода в один и изменять надпись на кнопке в соответствии с режимом. Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
8 | Лифтёра вызывали? |
|
|||
1. Пишем метод поднятия на лифте 2. Пишем метод выполнения заданий Вопрос: что нужно добавить и где, чтобы выполнялись не более 7 заданий? Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт] Научился: Научился создавать методы поднятия на лифте и выполнения заданий. Проверку на 7 заданий в день нужно добавлять в методе buttonQuest_Click Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
9 | Сегодня выполняем |
|
|||
1. Ставим проверку на то, сколько заданий выполнено 2. Пишем метод определения выполненных заданий Вопрос: как сделать перечисление методов, чтобы избавиться от строки? Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 48 мин. [Показать отчёт] Научился: Научился выполнять проверку на количество выполненных заданий и писать метод определения выполненных заданий. Сложности: Вроде бы метод написан правильно: private bool NeedQuest() { int quest = 0; int quest_all = 7; if (webBrowser1.Url.AbsoluteUri == "http://nebo.mobi/quests") { HtmlElementCollection collection = webBrowser1.Document.GetElementsByTagName("div"); foreach(HtmlElement el in collection) { if (el.OuterText == null) continue; if (el.OuterText.Length > 24 && el.InnerText.Substring(0, 25) == "Сегодня выполнено заданий") quest = int.Parse(el.InnerText.Substring(el.InnerText.IndexOf(':') + 1, 3)); } } return quest < quest_all; } Однако при проверке в окне textBoxHtml выдает один и тот же результат 2 раза (2 строки). Ошибку найти не могу... Комментарии: Замечаний нет. |
|||||
10 | Работа - работа, перейди на Федота, а с Федота... |
|
|||
1. Пишем отдельный метод Rabota 2. Добавляем таймер 3. Проверяем работу Робота Вопрос: как определить что страница уже загрузилась? Отчёт отправил: 9612. Олег Михайлович Выполнено за 38 мин. [Показать отчёт] Научился: Научился создавать метод Rabota, добавлять таймер и проверять автоматическую работу робота. Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
11 | Лабиринт Минотавра |
|
|||
На уроке мы напишем метод открывания случайной двери Вопрос: какие нужны проверки для корректной работы метода? Отчёт отправил: 9612. Олег Михайлович Выполнено за 38 мин. [Показать отчёт] Научился: Научился писать метод открывания дверей. Сложности: Сложностей нет. Комментарии: Проверку метода открывания дверей нужно проводить по параметру "Осталось ключей: 0". Тогда из метода открывания дверей можно выходить. |
|||||
12 | Лабиринт Минотавра и нить Ариадны |
|
|||
Напишем метод определение текущей двери и метод определения текущего количества ключей. Задание: добавить два текстовых поля и вывести информацию с количеством ключей и номеру текущей двери в соответствующие текстовые поля. Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 34 мин. [Показать отчёт] Научился: Научился создавать методы для определения текущей двери и метод определения количества ключей. Добавлены поля на форму для количества ключей и текущей двери и дописан код по выводу номера текущей двери в соответствующее поле. Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
13 | Уборка помещений |
|
|||
1. Пишем метод подсчета ключей 2. Создаем новый класс BrowserClass 3. Переносим все методы внутрь Вопрос: где должна располагаться переменная перечисления mode? Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 26 мин. [Показать отчёт] Научился: Научился созданию метода подсчета ключей, научился рефакторингу кода путем созданию нового класса BrowserClass. Сложности: Сложного вроде бы и ничего, но с увеличение количества кода возрастает и сложность. Комментарии: Домашнее задание: Переменная перечисления одинаково активно используется и в BrowserClass, и в Form1.cs поэтому я не понимаю, в чем особый смысл переносить ее в класс BrowserClass. Мне кажется, что она может оставаться на прежнем месте. |
|||||
14 | Цикличность бытия |
|
|||
1. Пишем метод NextStep() 2. Пишем метод проверки, нужен ли цикл Вопрос: в какое время нужно программно останавливать работу таймера? Отчёт отправил: 9612. Олег Михайлович Выполнено за 51 мин. [Показать отчёт] Научился: Научился рефакторингу кода -- написанию метода NextStep(). Сложности: Сложностей нет. Комментарии: Замечаний нет. На мой взгляд, останавливать работу таймера программно нужно после выполнения метода Rabota(). |
|||||
15 | Сколько времени? |
|
|||
1. Добавляем настройки запуска робота 2. Добавляем информацию о времени запуска Вопрос: Как и в какое место нужно установить обновление страницы в браузере, чтобы получить свежие данные по необходимости повтора цикла? Отчёт отправил: 9612. Олег Михайлович Выполнено за 43 мин. [Показать отчёт] Научился: Научился добавлять настройки для запуска робота, добавлять информацию о времени запуска. Сложности: Сложностей нет. Комментарии: Думаю, что обновление страницы в браузере, чтобы получить свежие данные о необходимости повтора цикла нужно добавить в методе Rabota(), в строку: if (mode == Mode.Ожидание) [вот тут] return; |
|||||
16 | Настройки меняют настроение |
|
|||
Добавить настройки по выполнению методов, на их основе перепишем метод получения следующего шага Вопрос: напишите варианты хранения настроек программы (минимум один вариант) Отчёт отправил: 9612. Олег Михайлович Выполнено за 48 мин. [Показать отчёт] Научился: Научился добавлять настройки по выполнению методов, дальнейшему рефакторингу кода программы и созданию метода перехода на страницу в зависимости от мода. Сложности: Сложностей нет. Комментарии: Варианты хранения настроек программы: в файле, в реестре Windows. |
|||||
17 | С настройками всё в порядке! |
|
|||
Изучаем настройки VisualStudio, заполним значения и попробуем сохранять и получать данные из настроек. А так же наконец-то добавим Авторизацию в наш цикл и сделаем чтобы всё это крутилось и работало! Задание: сделать так, чтобы работало прохождение Лабиринта. Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 46 мин. [Показать отчёт] Научился: Научился добавлять значения в настройки, создавать методы заполнения и сохранения настроек. Сложности: Сложностей нет. Но допустил ошибку (пропустил один оператор return) и долго искал ошибку, но в итоге нашел и исправил. Теперь все работает как надо. Комментарии: Замечаний нет. |
|||||
18 | Жители. Выбираем гостиницу |
|
|||
Ищем Гостиницу и попробуем в нее заходить. Задание: провести анализ жителей Гостиницы. Определить какие жители нужны, а каких необходимо выгонять |
|||||
19 | Жители. Кто следующий? |
|
|||
Рассмотрим жителей, начнем разбирать жителей из Гостиницы и методом перебора будем выбирать тех жителей, с которыми мы будем работать Задание: написать метод выселения жителя Отчёт отправил: 9612. Олег Михайлович Выполнено за 40 мин. [Показать отчёт] Научился: Научился создавать метод выбора следующего жителя, выбирать жителей, которых нужно выгонять и жителей, которых нужно устраивать на работу. Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
20 | Жители. Кто хочет сегодня поработать? |
|
|||
Напишем три метода: "выселения жителя", "Найти работу", "Устроить на работу". Задание: красиво и удобно разместить на форме элементы Отчёт отправил: 9612. Олег Михайлович Выполнено за 55 мин. [Показать отчёт] Научился: Научился создавать методы выселения жителей, метод отбора жителей для устройства на работу и метод устройства жителей на работу. Сложности: Сложностей нет. Комментарии: Замечаний нет. |
|||||
21 | Жители. Кто не работает - то не ест! |
|
|||
Пишем метод Увольнения сотрудника Проверяем всю логику программы, подводим итоги. Отчёт отправил: 9612. Олег Михайлович Выполнено за 45 мин. [Показать отчёт] Научился: Научился создавать метод увольнения сотрудников. Сложности: Сложностей нет. Комментарии: Замечаний нет. Хочу выразить огромную благодарность за созданный курс. Мне, как начинающему кодеру на C# курс дал огромное количество подходов в кодировании, которые вычитать в учебниках никогда бы не удалось. Еще раз огромное спасибо, Кирилл. Хотелось бы попросить о создании подобного курса, но, по работе, например, с капчами. Было бы очень познавательно. |
|||||
22 | ФИНАЛЬНЫЙ УРОК |
|
|||
Задание. Записать видеообзор любой своей программы. |
|||||
23 | VIP. Формирование цикла |
|
|||
Формируем супер-цикл |
|||||
Итого: 23 видеоурока |
9 час. 25 мин. |
10 чел. | |||
Финалисты: Новопашин Владимир, Tekashnik, Alcatraz, Дмитрий 199, Максим Лапшинов, Ludmila, Антон, Роман, Константин, Слава . |