 
				| # | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ | 
|---|---|---|---|---|---|
| 1 |  1. Консольная игра. Добро пожаловать! | 3 теста | |||
| Дорога длиной в тысячу миль начинается с первого шага. На этом уроке мы поговорим о предстоящем путешествии и сделаем наш первый шаг - создадим консольное приложение. Отчёт отправил: 5081. Михаил Выполнено за 1 час. 31 мин. [Показать отчёт] Научился: Не понял зачем такие сложности с шаблонами. Не нашел как в видео, обновил VS2017 до последней версии и все равно не увидел с таким же значком. Использовал как посоветовали Общий проект | |||||
| 2 | Марионетка |  | |||
| На этом слайде мы сделаем управление символом с клавиатуры. Отчёт отправил: 5081. Михаил Выполнено за 14 мин. [Показать отчёт] Научился: Мое первое консольное приложение! | |||||
| 3 | Представление выделяется | 2 теста | |||
| Show must go on! На этом слайде мы вынесем команды для работы с экранам в отдельный класс View. Отчёт отправил: 5081. Михаил Выполнено за 21 мин. [Показать отчёт] Научился: Повторил для себя как создавать классы и туда переносить методы | |||||
| 4 | Модель игры |  | |||
| На этом слайде мы выделим логику, модель в отдельный класс Game. Отчёт отправил: 5081. Михаил Выполнено за 16 мин. [Показать отчёт] Научился: Красиво получается, когда код так располагается по отдельным классам, хорошо читается код | |||||
| 5 | Контроллер не спешит | 1 тест | |||
| На этом слайде мы сформулируем задачи контроллера и выделим его в отдельный класс. Отчёт отправил: 5081. Михаил Выполнено за 15 мин. [Показать отчёт] Научился: MVC - это круто! | |||||
| 6 | Цветной телевизор | 1 тест | |||
| На этом слайде мы создадим ещё одно представление и задействуем его в программе. Отчёт отправил: 5081. Михаил Выполнено за 8 мин. [Показать отчёт] Научился: Создан класс View | |||||
| 7 | Видный интерфейс | 2 теста | |||
| На этом слайде мы создадим интерфейс IView и задействуем его в классе Game. Класс Game теперь не зависит от конкретной реализации его представления. Попробуйте сделать то же самое через абстрактный класс. Отчёт отправил: 5081. Михаил Выполнено за 8 мин. [Показать отчёт] Научился: Интерфейс - это Сила! | |||||
| 8 | Игра в библиотеке |  | |||
| На этом слайде мы выделим логику игру в отдельную библиотеку. Отчёт отправил: 5081. Михаил Выполнено за 13 мин. [Показать отчёт] Научился: Не знал, что можно использовать кучу проектов в одном решении, а вот оно как! | |||||
| 9 | 2. Рефакторинг. Перечисление субъектов |  | |||
| Приступаем к рефакторингу. На этом слайде мы составим список "главных героев", которые могут быть отображены на экране. Отчёт отправил: 5081. Михаил Выполнено за 11 мин. [Показать отчёт] Научился: Создано перечисление Subject | |||||
| 10 | Показ героя на экране |  | |||
| На этом слайде мы задействуем перечисление субъектов в интерфейсе представления и во всех его реализациях. Отчёт отправил: 5081. Михаил Выполнено за 14 мин. [Показать отчёт] Научился: Это очень круто, что в одном классе можно описать несколько одинаковых процедур с разным типом переменных и система сама на основании типов переменных выберет нужную процедуру | |||||
| 11 | Координатная структура |  | |||
| На этом слайде мы создадим структуру Coord для хранения координат объекта на карте. Отчёт отправил: 5081. Михаил Выполнено за 19 мин. [Показать отчёт] Научился: Создана структура Coord произведен рефакторинг | |||||
| 12 | Карта сокровищ |  | |||
| На этом слайде мы создадим класс Level, в котором будет храниться карта уровня. Благодаря этому классы мы сможем узнать, что в какой клетке поля находится. Отчёт отправил: 5081. Михаил Выполнено за 17 мин. [Показать отчёт] Научился: Создан класс Level и его инициализация | |||||
| 13 | Шаги по карте | 1 тест | |||
| На этом слайде мы задействуем класс Level в классе логики Game Отчёт отправил: 5081. Михаил Выполнено за 14 мин. [Показать отчёт] Научился: Создан класс Level и внесены изменения в необходимые классы | |||||
| 14 | Генерация лабиринта | 1 тест | |||
| На этом слайде мы сгенерируем лабиринт и отобразим его на экране. Отчёт отправил: 5081. Михаил Выполнено за 18 мин. [Показать отчёт] Научился: Добавлена инициализация уровня и его показ | |||||
| 15 | Координатный перебор | 1 тест | |||
| На этом слайде мы создадим в структуре Coord метод для перебора всех координат, ограниченных указанным размером Отчёт отправил: 5081. Михаил Выполнено за 15 мин. [Показать отчёт] Научился: Создан новый метод для вывода карты. Координаты юзера надо наверное хранить в классе Level | |||||
| 16 | Подходящий размер! |  | |||
| На этом слайде мы добавим проверки размеров нашего уровня. Для этого мы добавим в структуру Coord ещё один метод Coord.InSize(). Отчёт отправил: 5081. Михаил Выполнено за 12 мин. [Показать отчёт] Научился: Метод InSize + проверка | |||||
| 17 | Правила игры | 1 тест | |||
| На этом слайде мы добавим проверку правил игры, чтобы главный герой не мог забираться на стенки. Отчёт отправил: 5081. Михаил Выполнено за 26 мин. [Показать отчёт] Научился: Добавлена проверка на возможность перемещения, убран курсор и затирание справа от курсора | |||||
| 18 | Дорога из жёлтого кирпича | 1 тест | |||
| На этом слайде мы разукрасим уровень - установим разные цвета для разных субъектов Отчёт отправил: 5081. Михаил Выполнено за 3 мин. [Показать отчёт] Научился: Установка цвета для разных объектов | |||||
| 19 | Ищи ветра в поле | 1 тест | |||
| На этом слайде мы напишем метод, который найдёт месторасположение субъекта на карте. Воспользуемся этим методом для инициализации первоначальных координат игрока. Отчёт отправил: 5081. Михаил Выполнено за 16 мин. [Показать отчёт] Научился: Новый метод для поиска первого попавшегося указанного блока | |||||
| 20 | Координатный рефакторинг | 1 тест | |||
| На этом слайде мы добавим в структуру Coord операторы == и !=, а также добавим метод проверки нахождения координат на краю поля. Отчёт отправил: 5081. Михаил Выполнено за 56 мин. [Показать отчёт] Научился: Проведен рефакторинг | |||||
| 21 | Собери монетки | 1 тест | |||
| На этом слайде мы добавим в игру монетки, научимся их собирать и при этом добавлять новые. Отчёт отправил: 5081. Михаил Выполнено за 38 мин. [Показать отчёт] Научился: Добавлены новые методы для работы с монеткой. Произведен рефакторинг метода Move() | |||||
| 22 | 3. Тестирование. Тестовый прогон |  | |||
| Мы приступаем к очередному этапу созданию программы - написание unit-тестов. На этом слайде мы создадим класс тестирования для структуры Coord. Отчёт отправил: 5081. Михаил Выполнено за 19 мин. [Показать отчёт] Научился: Первый раз в жизни попробовал unit тест. Даже и не знал, что они из себя представляют) | |||||
| 23 | Тест обратной стороны Луны |  | |||
| На этом слайде мы напишем тесты для методов InSize() и OnSide(). Отчёт отправил: 5081. Михаил Выполнено за 24 мин. [Показать отчёт] Научился: Добавлены новые тесты InSizeTest() и OnSizeTest(). Найдена и исправлена ошибка в методе OnSiz(). | |||||
| 24 | Случайное тестирование |  | |||
| На этом слайде мы напишем тест для методов Coord.YieldCoords() и Coord.GetRandom() | |||||
| 25 | Лабиринты тестирования | 1 тест | |||
| На этом слайде мы создадим тест для класса Level | |||||
| 26 | Поиск монеток на поле Дураков |  | |||
| На этом слайде мы закончим создание тестов для класса Level | |||||
| 27 | Внутренний мир Субъекта |  | |||
| На этом слайде мы изменим модификатор доступа для метода Level.SetSubject() | |||||
| 28 | Прогулка за ручку |  | |||
| На этом слайде мы протестируем самый главнный класс Game в нашей библиотеке. | |||||
| Итого: 28 видеоуроков | 3 час. 23 мин. 18 тестов | 22 чел. | |||
| Финалисты: Trira, Александр, Слава, Дмитрий Че, Иван Воронин, Andrew, Дмитрий, DimanDOS, Chip, Tekashnik, Александр, vip, Алексей В., Максим Лапшинов, Александр Балбашов, Никита, Yefim, Max, Николай Денисов, Дмитрий, MaxB, Alina . | |||||