# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы начинаем знакомство с самым популярным, используемым и самым востребованным шаблоном проектирования: "Итератор". Так же мы создадим базовый интерфейс, который является основой для последовательного перебора любых объектов. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: итерация == вызов и обработка однотипных предметов в рамках поставленной задачи, к примеру пересчета boolean hasNext (); - правда или ложь, что есть следующий объект для обработки - такова задача этого метода Object next (); - метод обработки имеющегося в наличии и проверенного вышеуказанным методом объекта, возвращается этим методом ОБЪЕКТ |
|||||
2 | Iterator - Numbers - 12345 |
1 тест |
|||
Мы продолжаем знакомство с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы создадим класс NumbersIterator() реализовав интерфейс Iterator для перебора целых чисел. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 13 мин. [Показать отчёт] Научился: краткие уроки более удобоваримые юниты для постижения Создали класс для игр с пересчетом до пяти, имплементировали им интерфейс Итератор ручной сборки (не джавовский из библиотеки, а свой, собственноручно сваянный ) |
|||||
3 | Iterator - Numbers - Iterable |
1 тест |
|||
Мы продолжаем знакомство с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы создадим класс Program() в котором продемонстрируем как работать с созданным ранее итератором NumbersIterator(). Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 18 мин. [Показать отчёт] Научился: при переборе в цикле вайл numbers возвращаются объекты, поэтому, если нужно выполнять над возвращаемыми объектами математические действия, эти возвращаемые объекты надо приводить к типу Integer , это делается указанием интеджера в скобках перед объектом Интерфейс Итерабл требуется для организации общего доступа к его функционалу из любого места программы, как я понял |
|||||
4 | Iterator - Numbers - Running |
1 тест |
|||
Мы продолжаем знакомство с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы реализуем класс Numbers() implements Iterable. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 20 мин. [Показать отчёт] Научился: создали класс Numbers, который имплементирует (реализует) интерфейс Iterable и применили его при пересчете до пяти Класс Iterator экземпляр под именем numbers = присвоить новый экземпляр new класса Numbers(). и применить в нём метод iterator (); А метод итератор имеет одну строку с оператором return new NumbersIterator (); А уже в намберситераторе расписана все правила счета от единицы до пяти с проверкой наличия следующего для счета элемента и с инкрементом для перехода далее |
|||||
5 | Iterator - Numbers - Inner class |
1 тест |
|||
Мы продолжаем знакомство с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы объединим два класса в один. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 12 мин. [Показать отчёт] Научился: при перемещении класса из отдельного файла внутрь другого класса не забывай удалить из сигнатуры перемещаемого класса модификатор доступа паблик - внутри класса он уже не нужен Класс с модификатором доступа паблик в отдельном файле и класс внутри класса использующего это класс эквивалентны по доступности Сложности: Видеть снег и слякоть за окном наступающих сумерек в без малого четыре часа дня... |
|||||
6 | Iterator - Numbers - System |
1 тест |
|||
Мы продолжаем знакомство с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы удалим созданные ранее интерфейсы Iterable и Iterator. После чего воспользуемся встроенным java.util.Iterator. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 36 мин. [Показать отчёт] Научился: перебор элементов с целью их анализа или обработки - фундаментальный шаблон проектирования дающий ключи к широкому спектру успешно решенных задач Можно наваять самостоятельно интерфейс итератора - требуется проверка на наличие очередного элемента ряда и требуется метод обработки с инкрементированием - переходом к следующему элементу, наличие которого проверяется предыдущим методом Итератора Удалив самостоятельно написанные интерфейсы мы использовали системные библиотеки Джавы - функционал был сохранён |
|||||
7 | Iterator - Random |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы попрактикуемся в использовании итератора и создадим очередную программу для генерации случайных чисел. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 47 мин. [Показать отчёт] Научился: поля родительского класса видны из дочернего класса без каких-либо дополнительных ухищрений - область видимости класса-родителя включает и область видимости дочернего класса Вариант остановки работы программы - если возвращено совпадение с округленным числом Пи |
|||||
8 | Iterator - Digits |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы напишем ещё один Итератор, который будет перебирать цифры числа. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 4 час. 13 мин. [Показать отчёт] Научился: суть итератора остаётся неизменной при всех ухищрениях наследования, перегрузки и удочерения классами классов - проверь наличие следующего элемента для обработки и вторым методом обработай его как требуется не забыв тут же инкрементировать, что бы перейти к следующему элементу Набросали три класса, один из которых пээсвээм, оставшиеся - находятся в родственной связи (один в другом) Пр0грам запускает цикл для перебора последовательности и возвращает на экран результат работы Родственники заняты иным Диджитс имплементит Итерабл и присваивает намберу значение аргумента на входе в конструкторе Дочерний ДиджитсИтератор имплементит уже Итератор и содержит базовые методы проверки следующего элемента и второй метод, занятый возвращением остатка от деления на 10 и целочисленным делением для «откусывания» хвоста числа с целью перехода к следующей цифре слева направо |
|||||
9 | Iterator - BlackJack - Introduction |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы распишем план игры BlackJack, которую реализуем в течении следующих уроков. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 39 мин. [Показать отчёт] Научился: познакомлюсь на на пятом десятке с карточной игрой, не всё порхать в неведении, хоть знать буду правила для начала Если у игрока после взятия новой карты сумма очков превысит 21, то такая ситуация называется «перебор» Дилер произносит «много» и снимает ставку игрока в пользу казино Если у дилера в первых двух картах набирается 21 очко (BlackJack), то все игроки (кроме тех, у кого тоже BlackJack), проигрывают Помимо PSVM в классе Program, будут в нашей игре ещё пара классов, класс Кард с перечислением карт и перечислением мастей, с методом подсчета «веса» карт. Класс КардЗззз будет имплементировать (реализовывать) интерфейс Итерабл, а дочерний ему класс КардззззИтератор будет реализовывать интерфейс Итератор с классическими методами проверки следующего члена ряда и обработки текущего с переходом далее |
|||||
10 | Iterator - BlackJack - Card |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы начинаем создание игры BlackJack, а конкретно создадим вначале проект IteratorBlackJack и создадим класс Card(), который продемонстрирует возможность использования итератора для перечисления не только чисел. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 41 мин. [Показать отчёт] Научился: узнал названия мастей на английской мове Spades, //пики Diamonds, // буби Hearts, // черви Clubs // трефы Метод ordinal() возвращает порядковый номер элемента перечисления enum Сложности: Дождаться, когда девять из илевена будет поправлено в найн ))) |
|||||
11 | Iterator - BlackJack - Deck of Cards |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы создадим класс Cards() implements Iterable который будет перебирать все возможные комбинации карт. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 23 мин. [Показать отчёт] Научился: массив карт одномерный каждая карта будет иметь свой номер хранимый в переменной каунт заполнение массива карт - через вложенные циклы проверка хезнекста - пока счетчик больше нуля после заполнения массива карт до 51 (52 - 1) Итератор работает декрементом и выводом элемента массива карт |
|||||
12 | Iterator - BlackJack - Random |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы реализуем алгоритм перемешивания колоды. Для этого мы воспользуемся нестандартным способом, который напоминает игру: "Что? Где? Когда?". Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 7 мин. [Показать отчёт] Научился: вариант тасовки карт такой придумал я) Выполнять проверку на соседство номеров карт и если они отличаются не более, чем на 1, то менять их местами Для этого придется использовать промежуточные переменные, но в итоге сам массив будет уже содержать тасованные карты |
|||||
13 | Iterator - BlackJack - Stages |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы реализуем базовый алгоритм Дилера, чтобы он раздавал карты играющим. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 25 мин. [Показать отчёт] Научился: свич-кейс приходит на помощь, когда не хватает ифэлза Игра в черного Джека состоит из трех стадий, не считая победы Дилера или Игрока 1) У Дилера видна карта 2) Игрок набирает себе сколько ему вздумается 3) Дилер набирает себе 4 - Победа того или другого Свич сделали на эти стадии, остался последний урок с деталями раздачи Интрига! |
|||||
14 | Iterator - BlackJack - Play game |
1 тест |
|||
Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы доделаем игру BlackJack, после чего можно будет играть с Дилером один на один. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 4 час. 58 мин. [Показать отчёт] Научился: выиграть у Дилера, как оказалось, несложно ))) Но это без ставок. С оными, картина мира меняется и люди готовы снять последнюю сами-знаете-что )) Разделяй и властвуй - хороший принцип алгоритмизации жизни, применённый в разработке игры, помог разделить игру на три этапа, в коде это был просто свич-кейс, в каждой из Сцен (STAGE) применили свои наборы правил и проверку условий. Обошлись ифэлзами, присвоением, суммированием, оператором НЕ (!), и оператором БОЛЬШЕ (>) С этим небогатым инструментарием игра взлетела и играет как надо Можно завтра делать видео по курсу Код несложный, думаю рассказать и показать не составит труда Сложности: Осознать, что подсветка клавиатуры в тёмном салоне машины уже не так актуальна ибо смотрю на экран, а не на клавиатуру. Спасибо Евгению Витольдовичу за прошлогодний марафон по СОЛО! |
|||||
15 | ФИНАЛЬНЫЙ УРОК |
без видео 5 тестов |
|||
Поздpaвляю! Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест". Напиши отзыв или видеообзор по этому видеокурсу. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 38 мин. [Показать отчёт] Научился: вот и новый курс за плечами, количество говорят должно перерасти в качество, жаль небыстрый это процесс Итератор несложен и для новичка удобен к пониманию и осмыслению Два принципа в основе - проверить наличие следующего элемента для обработки И обработать как требуется Это база - булевский метод hasNext проверит есть ли куда двигаться, а метод next, возвращающий обрабатываемый элемент занимается его изменением как того требует ТЗ Всё остальное - уже надстройка В нашей игре итератор реализован в Cards.java Видеообзор: ljaCgvXmR8Q |
|||||
Итого: 15 видеоуроков |
1 час. 37 мин. 19 тестов |
10 чел. | |||
Финалисты: Иван Воронин, Сергей Соколов, Новопашин Владимир, Виктор, Tekashnik, Александр, Dmitry Sinitsin, Anatoli, Yefim, Tom . |