# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
3 теста |
|||
Дорога длиной в тысячу миль начинается с первого шага. На этом уроке мы поговорим о предстоящем путешествии и сделаем наш первый шаг - создадим консольное приложение. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 11 мин. [Показать отчёт] Научился: Узнал о консольной команде CTRL+F5 Сложности: Поскольку Интерфейс моего VS на русском языке трудно было найти как выбрать Проект с пустым решением. |
|||||
2 | Марионетка |
|
|||
На этом слайде мы сделаем управление символом с клавиатуры.
Отчёт отправил: 11589. Yefim Выполнено за 22 час. 52 мин. [Показать отчёт] Научился: Повторил управление символом с клавиатуры Сложности: Не было сложностей |
|||||
3 | Представление выделяется |
2 теста |
|||
Show must go on! На этом слайде мы вынесем команды для работы с экранам в отдельный класс View. Отчёт отправил: 11589. Yefim Выполнено за 30 мин. [Показать отчёт] Научился: Выносить команды для работы с экранам в отдельный класс View. Сложности: Не было сложностей |
|||||
4 | Модель игры |
|
|||
На этом слайде мы выделим логику, модель в отдельный класс Game.
Отчёт отправил: 11589. Yefim Выполнено за 31 мин. [Показать отчёт] Научился: Выделять логику, модель в отдельный класс Game. Сложности: Отличный курс для начинающих! |
|||||
5 | Контроллер не спешит |
1 тест |
|||
На этом слайде мы сформулируем задачи контроллера и выделим его в отдельный класс.
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 16 мин. [Показать отчёт] Научился: Выделлять контроллер в отдельный класс Сложности: Мне удалось объект двигаться в выбранном направлении |
|||||
6 | Цветной телевизор |
1 тест |
|||
На этом слайде мы создадим ещё одно представление и задействуем его в программе.
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 49 мин. [Показать отчёт] Научился: Создавать класс ViewColor Сложности: Для переключения представления необходимо создать класс View с разными конструкторами |
|||||
7 | Видный интерфейс |
2 теста |
|||
На этом слайде мы создадим интерфейс IView и задействуем его в классе Game. Класс Game теперь не зависит от конкретной реализации его представления. Попробуйте сделать то же самое через абстрактный класс. Отчёт отправил: 11589. Yefim Выполнено за 36 мин. [Показать отчёт] Научился: Создавать интерфейс IView Сложности: Удалось реализовать динамическое переключение |
|||||
8 | Игра в библиотеке |
|
|||
На этом слайде мы выделим логику игру в отдельную библиотеку.
Отчёт отправил: 11589. Yefim Выполнено за 35 мин. [Показать отчёт] Научился: Создавать библиотеку Сложности: Всё получилось. Заметил опечатку в строке: На этом слайде мы выделим логику игру в отдельную библиотеку. Должно быть: На этом слайде мы выделим логику игры в отдельную библиотеку. |
|||||
9 | 2. Рефакторинг. Перечисление субъектов |
|
|||
Приступаем к рефакторингу. На этом слайде мы составим список "главных героев", которые могут быть отображены на экране. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 35 мин. [Показать отчёт] Научился: Cоставлять список "главных героев", которые могут быть отображены на экране. Сложности: Не могу понять как перечисления могут принимать не числовые значения? |
|||||
10 | Показ героя на экране |
|
|||
На этом слайде мы задействуем перечисление субъектов в интерфейсе представления и во всех его реализациях.
Отчёт отправил: 11589. Yefim Выполнено за 45 мин. [Показать отчёт] Научился: Внедрять перечисление субъектов в интерфейсе представления и во все его реализации. Сложности: Пока непонятно, зачем вводить новый тип если мы его все равно представляем в строковом виде ? Возможно это пригодится в будущем... |
|||||
11 | Координатная структура |
|
|||
На этом слайде мы создадим структуру Coord для хранения координат объекта на карте.
Отчёт отправил: 11589. Yefim Выполнено за 27 мин. [Показать отчёт] Научился: Создавать структуру Coord для хранения координат объекта на карте. Сложности: Все получилось! |
|||||
12 | Карта сокровищ |
|
|||
На этом слайде мы создадим класс Level, в котором будет храниться карта уровня. Благодаря этому классы мы сможем узнать, что в какой клетке поля находится. Отчёт отправил: 11589. Yefim Выполнено за 40 мин. [Показать отчёт] Научился: Создавать класс Level, в котором должна храниться карта уровня. Сложности: Вопрос не по теме: как отправить сообщение о замеченной опечатке? |
|||||
13 | Шаги по карте |
1 тест |
|||
На этом слайде мы задействуем класс Level в классе логики Game
Отчёт отправил: 11589. Yefim Выполнено за 37 мин. [Показать отчёт] Научился: Задействовать класс Level в классе логики Game Сложности: Хотелось бы уже убедиться визуально в пользе класса Level. |
|||||
14 | Генерация лабиринта |
1 тест |
|||
На этом слайде мы сгенерируем лабиринт и отобразим его на экране.
Отчёт отправил: 11589. Yefim Выполнено за 2 час. 26 мин. [Показать отчёт] Научился: Генерировать простейший лабиринт и отображать его на экране. Сложности: Всё получилось! |
|||||
15 | Координатный перебор |
1 тест |
|||
На этом слайде мы создадим в структуре Coord метод для перебора всех координат, ограниченных указанным размером
Отчёт отправил: 11589. Yefim Выполнено за 10 час. 26 мин. [Показать отчёт] Научился: Создавать коллекции с помощью IEnumerable и yield return. Сложности: Постепенно приходит понимание механизма работы IEnumerable и yield return. |
|||||
16 | Подходящий размер! |
|
|||
На этом слайде мы добавим проверки размеров нашего уровня. Для этого мы добавим в структуру Coord ещё один метод Coord.InSize(). Отчёт отправил: 11589. Yefim Выполнено за 1 час. 16 мин. [Показать отчёт] Научился: Ограничивать движение главного героя. Сложности: Не было сложностей. |
|||||
17 | Правила игры |
1 тест |
|||
На этом слайде мы добавим проверку правил игры, чтобы главный герой не мог забираться на стенки.
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 27 мин. [Показать отчёт] Научился: Корректно ограничивать передвижения главного героя. Прятать курсор Сложности: Всё получилось!!! |
|||||
18 | Дорога из жёлтого кирпича |
1 тест |
|||
На этом слайде мы разукрасим уровень - установим разные цвета для разных субъектов
Отчёт отправил: 11589. Yefim Выполнено за 22 мин. [Показать отчёт] Научился: Разукрашивать разные субъекты разными цветами. Ультра короткий урок Сложности: Слишком короткий урок. |
|||||
19 | Ищи ветра в поле |
1 тест |
|||
На этом слайде мы напишем метод, который найдёт месторасположение субъекта на карте. Воспользуемся этим методом для инициализации первоначальных координат игрока. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: Находить месторасположение первого субъекта на карте. Сложности: ------------ |
|||||
20 | Координатный рефакторинг |
1 тест |
|||
На этом слайде мы добавим в структуру Coord операторы == и !=, а также добавим метод проверки нахождения координат на краю поля. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 26 мин. [Показать отчёт] Научился: Создавать новые операторы и регионы. Сложности: Всё получилось |
|||||
21 | Собери монетки |
1 тест |
|||
На этом слайде мы добавим в игру монетки, научимся их собирать и при этом добавлять новые. Отчёт отправил: 11589. Yefim Выполнено за 2 час. 6 мин. [Показать отчёт] Научился: Собирать и добавлять монетки. Сложности: Визуально создается эффект, что герой не собирает деньги гоняется за долларами. Доллары как бы от него убегают. непонятно зачем при условии if (moveSubgect == Subject.money) вызываем метод MoveUser(moveCoord); Я закомментировал этот вызов и функционал не не изменился. |
|||||
22 | 3. Тестирование. Тестовый прогон |
|
|||
Мы приступаем к очередному этапу созданию программы - написание unit-тестов. На этом слайде мы создадим класс тестирования для структуры Coord. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 53 мин. [Показать отчёт] Научился: Создавать проект тестов. Сложности: Из-за различий в версиях VS были проблемы. методом проб и ошибок разобрался. Поэкспериментировал: Указал заведомо не верную ожидаемую величину. Тест не пошел как и положено. Однако, информацию о виновнике провала теста не нашел. |
|||||
23 | Тест обратной стороны Луны |
|
|||
На этом слайде мы напишем тесты для методов InSize() и OnSide().
Отчёт отправил: 11589. Yefim Выполнено за 13 час. 15 мин. [Показать отчёт] Научился: Писать тесты для методов InSize и OnSide Сложности: ----------------- |
|||||
24 | Случайное тестирование |
|
|||
На этом слайде мы напишем тест для методов Coord.YieldCoords() и Coord.GetRandom()
Отчёт отправил: 11589. Yefim Выполнено за 55 мин. [Показать отчёт] Научился: Создавать тесты для методов Coord.YieldCoords() и Coord.GetRandom(). Сложности: ------------- |
|||||
25 | Лабиринты тестирования |
1 тест |
|||
На этом слайде мы создадим тест для класса Level
Отчёт отправил: 11589. Yefim Выполнено за 39 мин. [Показать отчёт] Научился: Создавать тест для класса Level Сложности: ----------- Вопрос не по теме: Как создавать Setup проекта |
|||||
26 | Поиск монеток на поле Дураков |
|
|||
На этом слайде мы закончим создание тестов для класса Level
Отчёт отправил: 11589. Yefim Выполнено за 3 час. 33 мин. [Показать отчёт] Научился: Закрепил создание тестов Сложности: Не было сложностей |
|||||
27 | Внутренний мир Субъекта |
|
|||
На этом слайде мы изменим модификатор доступа для метода Level.SetSubject()
Отчёт отправил: 11589. Yefim Выполнено за 12 мин. [Показать отчёт] Научился: Познакомился с модификатором доступа internak Сложности: --------- |
|||||
28 | Прогулка за ручку |
|
|||
На этом слайде мы протестируем самый главнный класс Game в нашей библиотеке.
Отчёт отправил: 11589. Yefim Выполнено за 1 час. 53 мин. [Показать отчёт] Научился: Тестировать самый главный класс Game. Формально всё получилось, Но есть вопрос... В целом курс прекрасен! Не смотря на простоту, узнал много полезного! Большое СПАСИБО, Евгений Витольдович! Сложности: Непонятен последний тест, когда герой передвигается на 2 шага (не реальных). Ведь визуально герой не выходит за границы площадки. Почему тест фиксирует ошибку? |
|||||
Итого: 28 видеоуроков |
3 час. 23 мин. 18 тестов |
22 чел. | |||
Финалисты: Trira, Александр, Слава, Дмитрий Че, Иван Воронин, Andrew, Дмитрий, DimanDOS, Chip, Tekashnik, Александр, vip, Алексей В., Максим Лапшинов, Александр Балбашов, Никита, Yefim, Max, Николай Денисов, Дмитрий, MaxB, Alina . |