# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Описание игры Небоскребы, для которой мы будем создавать систему автоматического управления сайтом, или проще - веббота на языке C#. Отчёт отправил: 4805. Сергей В Выполнено за 5 мин. [Показать отчёт] Научился: - Сложности: --- Комментарии: --- |
|||||
2 | Планирование функций |
|
|||
Напишем список функций, проанализируем какой необходим алгоритм для будущего Робота Нарисуем блок-схему. Вопрос: Какие ещё функции нужно добавить в список? Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: MS PAINT) Сложности: Передвигать в PAIN схемы Комментарии: Для меня не удобна система продвижения по курсу. Пока твою работу не оценят дальше приступать не дают. Скука. |
|||||
3 | Подготовка формы |
|
|||
Создадим первую форму и начнем её заполнять необходимыми элементами. Задание: Написать метод изменения страницы браузера из адресной строки Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Получил новые знание по работе с классом WebBrowser Сложности: ничего Комментарии: хочу по скорее уже написать эту программу) |
|||||
4 | Проверяем авторизацию |
|
|||
Добавим проверку авторизации. Допишем, если авторизации нет, то переходить на страницу авторизации Задание: Добавить кнопку Авторизация. Написать метод проверки авторизации Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Узнал о новом классе HtmlElementCollection и поиске по тэгам Сложности: Так и не понял домашнее задание. Кнопку Авторизация создал но что она должна проверять? Тоже самое что и проверка авторизации? Зачем тогда две одинаковые кнопки?) Комментарии: Продолжаем обучение |
|||||
5 | Авторизация |
|
|||
1. Создаем метод проверки авторизации возвращающий логическое значение (True / False) 2. Пишем авторизацию с заполнением полей Задание: Приложить скрин со скрытым паролем. Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Я и не знал что так просто можно в текстбоксе скрыть символы. В WPF пришлось бы создавать PasswordBox) Сложности: проще простого Комментарии: Продолжаем обучение |
|||||
6 | Робот приступает к действиям |
|
|||
1. Разбираем действия "Собрать выручку" 2. Переходим на Собирание выручки 3. Получаем первую ссылку на сбор выручки 4. Кликаем по ссылке(переходим по ней) 5. Тоже самое проделываем с "Выложить товар" Задание: Написать список ссылок, для перехода на другие функции Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: пробегаться по ссылкам. Следующие ссылка которая нам понадобится: http://nebo.mobi/floors/0/2 страница закупок Сложности: проще простого Комментарии: продолжаем обучение |
|||||
7 | Робот ходит за покупками |
|
|||
1. Разбираем закупку 2. Пишем метод перехода на Закупить 3. Дописываем условие для "Закупить товар" 4. Объединяем три метода в один Задание: При смене метода изменять название кнопки Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Предлагаю заменить условие для закупки товара на if (link.OuterText == "Закупить товар" || link.OuterText.Contains("Закупить за")) ключевое слово Contains, тогда не придется городить обрезание строки и проверка на длинну. Сложности: ничего Комментарии: Продолжаем обучение |
|||||
8 | Лифтёра вызывали? |
|
|||
1. Пишем метод поднятия на лифте 2. Пишем метод выполнения заданий Вопрос: что нужно добавить и где, чтобы выполнялись не более 7 заданий? Отчёт отправил: 4805. Сергей В Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: пока ничего нового. Добавить проверку сделано ли 7 заданий скорее всего можно добавить на кнопке Страница заданий, после перехода на неё. Может что то путаю. И уже повторюсь метод Contains у string позволяет сделать условие менее запутанным. Сложности: проще простого Комментарии: Продолжаем обучение |
|||||
9 | Сегодня выполняем |
|
|||
1. Ставим проверку на то, сколько заданий выполнено 2. Пишем метод определения выполненных заданий Вопрос: как сделать перечисление методов, чтобы избавиться от строки? Отчёт отправил: 4805. Сергей В Выполнено за 40 мин. [Показать отчёт] Научился: Упростил поиск тега DIV с помощью метода string.StartWith() не пришлось резать строки. И модифицировал поиск цифр выполненных заданий и максимум заданий. На скрине видать. По поводу надписей, проще всего создать Enum. Сложности: проще простого Комментарии: Продолжаем обучение |
|||||
10 | Работа - работа, перейди на Федота, а с Федота... |
|
|||
1. Пишем отдельный метод Rabota 2. Добавляем таймер 3. Проверяем работу Робота Вопрос: как определить что страница уже загрузилась? Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Загружена ли страница можно узнать по событию у WebBrowser DocumentComplete. Впервые вижу ЧекБокс в роли кнопки) Очень прикольно) Сложности: проще простого Комментарии: Продолжаем обучение |
|||||
11 | Лабиринт Минотавра |
|
|||
На уроке мы напишем метод открывания случайной двери Вопрос: какие нужны проверки для корректной работы метода? Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Не понятно почему мы в методе Rabota_Labirint запускаем ссылку с диапазоном collection[rand.Next(0, 3)]? Вы же сами говорите что могут быть всякие объявление и всякое разное. так не лучше было бы сначала добавить ссылки с дверьми в отдельный массив или лист и уже из него запускать рандом? Или я что-то не понял? Дополнительной проверкой для метода мне кажется стоит сделать проверку сколько осталось ключей чтоб бот не висел в цикле. Сложности: проще простого Комментарии: Продолжаем обучение |
|||||
12 | Лабиринт Минотавра и нить Ариадны |
|
|||
Напишем метод определение текущей двери и метод определения текущего количества ключей. Задание: добавить два текстовых поля и вывести информацию с количеством ключей и номеру текущей двери в соответствующие текстовые поля. Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Каждую минуту узнаю что то новое) Домашнее задание выполнил, вывел и количество дверей и ключей) Сложности: Проще простого Комментарии: Продолжаем обучение |
|||||
13 | Уборка помещений |
|
|||
1. Пишем метод подсчета ключей 2. Создаем новый класс BrowserClass 3. Переносим все методы внутрь Вопрос: где должна располагаться переменная перечисления mode? Отчёт отправил: 4805. Сергей В Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Методы На проверку количества дверей и Ключей можно объединить мне кажется. Иначе если уже сделано 10 дверей то он не проверяет количество ключей и не выдает информацию о количестве. Переменная mode думаю должна быть в BrawserClass можно сделать свойством. Сложности: проще простого Комментарии: Продолжаем обучение |
|||||
14 | Цикличность бытия |
|
|||
1. Пишем метод NextStep() 2. Пишем метод проверки, нужен ли цикл Вопрос: в какое время нужно программно останавливать работу таймера? Отчёт отправил: 4805. Сергей В Выполнено за 40 мин. [Показать отчёт] Научился: Да вроде пока все знакомо. Сложности: Проще простого Комментарии: Предположу что остановку таймера программно может понадобиться когда уже нечего выполнять. Т.е. когда по всем задания прошлись и не появились новые |
|||||
15 | Сколько времени? |
|
|||
1. Добавляем настройки запуска робота 2. Добавляем информацию о времени запуска Вопрос: Как и в какое место нужно установить обновление страницы в браузере, чтобы получить свежие данные по необходимости повтора цикла? Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Вроде все знакомо Сложности: Проще простого Комментарии: В логике запутался не могу понять где вставить обновление страницы. И не понятно зачем при нажатии кнопки Start/Stop при свойстве Checked=true Мы вызываем метод SetGlobalRandTime() в котором вызываем BrCl.NextStep() а после вызывем BrCl.NextStep() еще раз. |
|||||
16 | Настройки меняют настроение |
|
|||
Добавить настройки по выполнению методов, на их основе перепишем метод получения следующего шага Вопрос: напишите варианты хранения настроек программы (минимум один вариант) Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Вроде все знакомо. Сложности: Проще простого Комментарии: Properties.Settings.Default пользовался когда то для сохранения настроек) |
|||||
17 | С настройками всё в порядке! |
|
|||
Изучаем настройки VisualStudio, заполним значения и попробуем сохранять и получать данные из настроек. А так же наконец-то добавим Авторизацию в наш цикл и сделаем чтобы всё это крутилось и работало! Задание: сделать так, чтобы работало прохождение Лабиринта. Отчёт отправил: 4805. Сергей В Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Вроде все знакомо Сложности: Сложно делать задания с одним монитором) постоянно приходится сворачивать ютуб или программу) Комментарии: Метод по запуску лабиринта модифицировал вроде работает) |
|||||
18 | Жители. Выбираем гостиницу |
|
|||
Ищем Гостиницу и попробуем в нее заходить. Задание: провести анализ жителей Гостиницы. Определить какие жители нужны, а каких необходимо выгонять Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Вроде все знакомо) Сложности: Проще простого) Комментарии: Ну с игрой до конца не разобрался. По анализу: надо стараться устроить жителей на желаемую работу, с маленьким уровнем выселять. |
|||||
19 | Жители. Кто следующий? |
|
|||
Рассмотрим жителей, начнем разбирать жителей из Гостиницы и методом перебора будем выбирать тех жителей, с которыми мы будем работать Задание: написать метод выселения жителя Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Все знакомо Сложности: Проще простого Комментарии: Домашнее задание выполнил |
|||||
20 | Жители. Кто хочет сегодня поработать? |
|
|||
Напишем три метода: "выселения жителя", "Найти работу", "Устроить на работу". Задание: красиво и удобно разместить на форме элементы Отчёт отправил: 4805. Сергей В Выполнено за 30 мин. [Показать отчёт] Научился: Все знакомо Сложности: Проще простого Комментарии: Продолжаем обучение) |
|||||
21 | Жители. Кто не работает - то не ест! |
|
|||
Пишем метод Увольнения сотрудника Проверяем всю логику программы, подводим итоги. Отчёт отправил: 4805. Сергей В Выполнено за 20 мин. [Показать отчёт] Научился: Вроде все знакомо Сложности: Проще простого) Комментарии: Заметил что уволить работника нельзя пока доставляется заказ или что то вроде того. Буду думать над алгоритмом. Видимо нужно перед закупкой проверять жителей увольнять\устраивать а потом закупать. Вообщем развивать можно на самом деле бесконечно) |
|||||
22 | ФИНАЛЬНЫЙ УРОК |
|
|||
Задание. Записать видеообзор любой своей программы. |
|||||
23 | VIP. Формирование цикла |
|
|||
Формируем супер-цикл |
|||||
Итого: 23 видеоурока |
9 час. 25 мин. |
10 чел. | |||
Финалисты: Новопашин Владимир, Tekashnik, Alcatraz, Дмитрий 199, Максим Лапшинов, Ludmila, Антон, Роман, Константин, Слава . |