# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
На этом уроке мы сделаем небольшое теоретическое введение в потоки и начнём создавать консольное приложение с самодостаточным классом для Питона. Вопрос: какие ещё статические поля нужно добавить в класс Питона? Отчёт отправил: 11589. Yefim Выполнено за 12 мин. [Показать отчёт] Научился: Создавать переменные со свойством readonly Сложности: ничего Комментарии: Какие еще статические переменные нужны Возможно понадобятся голова питона, враг питона |
|||||
2 | Террариум |
|
|||
На этом уроке мы подготовим экран для наших питонов. Сделаем по краям стенки, чтобы они не уползли. Напишем функцию для сохранения и отображения символов. * Создайте метод AddHare() для добавления зайчика. Отчёт отправил: 11589. Yefim Выполнено за 45 мин. [Показать отчёт] Научился: Описывать матрицу screen Сложности: Определить ударение в первом слове задания: Опиcать мaтрицу screen. Комментарии: Выбрал в качестве зайчика букву Y с 2-мя длинными ушами . Нaписaл метод AddHare() для добaвления зaйчика и добавил 10 зайчиков |
|||||
3 | Зайчики |
|
|||
На этом уроке мы напишем статический метод для добавления зайчика на поле. Для этого нам потребуется несколько вспомогательных методов, которые окажутся полезными и в других частях нашей программы. В конце урока мы выведем на экран сотню зайчиков :) Ответить на вопрос: какие не статичные поля нужны питону? Отчёт отправил: 11589. Yefim Выполнено за 59 мин. [Показать отчёт] Научился: Размещать 100 зайчиков Сложности: ничего Комментарии: Какие не статичные поля нужны питону: В условиях, когда не было четкой постановки задачи, трудно определять эти поля. Можно только предположить: Общая длина, цвет, направление движения, скорость, голодный-сытый. |
|||||
4 | Питонатор |
|
|||
На этом уроке мы опишем нужные поля для нашего питона и создадим статическую функцию для создания его экземпляра. Также нам понадобится конструктор, который мы сделаем приватным. Отчёт отправил: 11589. Yefim Выполнено за 58 мин. [Показать отчёт] Научился: Создавать питона Сложности: ничего Комментарии: Не было сложностей |
|||||
5 | Поворот головы |
|
|||
На этом уроке мы сделаем отображение питона, поворот его головы и передвижение по экрану. * Оживить питонов самостоятельно. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 59 мин. [Показать отчёт] Научился: Узнал как можно создать новый орератор для объектов. Узнал об эффективном приеме при создании switch (arrow)... Сложности: Понять логику некоторых мест кода Комментарии: Насколько смог я подправил код и мне удалось отобразить не только питонов, но и зайчиков. Причем питоны созданы с разными поворотами головы. И те и другие пронумерованы. Я преднамеренно установил для зайчиков и питонов постоянные цвета, чтобы их можно было различить на темном фоне. Я думаю, на стадии отладки это оправдано. |
|||||
6 | Поток питонов |
|
|||
На этом уроке мы наконец-таки займёмся потоками. Запустим наших питонов сначала в одном потоке, а потом в отдельных - нам понадобится метод Run(). Создадим критическую секцию через lock. Протестируем режим Foreground/Background режимы. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 35 мин. [Показать отчёт] Научился: Создавать потоки питонов. Сложности: Не было сложностей Комментарии: Я сделал счетчик оставшихся питонов в правом верхнем углу. Хотелось бы явно увидеть преимущества при использовании потоков по сравнению с использованием цикла |
|||||
7 | Бурная жизнь |
|
|||
На этом уроке мы допишем класс питон и получим эстетическое удовольствие от созерцания нашего террариума с нашими Питонами и Зайцами. * Придумать свою фишку и реализовать, написать, что сделал. Отчёт отправил: 11589. Yefim Выполнено за 2 час. 45 мин. [Показать отчёт] Научился: выращивать питонов с хвостами Сложности: Были трудности при создании хвостов. Но потом оказалось не так сложно. Комментарии: Мне удалось добавить хвосты удавам. public static readonly char aTail = '~'; Что касается добавления функциональности, то есть немало идей. Во-первых нечестно, что питоны движутся а зайцы нет. У питонов наверняка имеются враги. Можно реализовать интеллектуальных питонов. Т.е. заставить их двигаться не случайно, а целенаправленно. |
|||||
8 | Приоритет |
|
|||
На этом уроке мы поиграемся с приоритетом потоков, воспользуемся монитором для создания критической секции, выведем на экран легенду потоков с id. Отчёт отправил: 11589. Yefim Выполнено за 23 мин. [Показать отчёт] Научился: Управлять приopитетoм потока Пользоваться фуннкцией Monitor.Enter(block); Сложности: Ничего Комментарии: Нет замечаний |
|||||
9 | Замри! |
|
|||
На этом уроке мы поговорим о статусах потока: Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped. Создадим функционал для остановки потоков по нажатию клавиш. И научимся сопротивляться этим остановкам. Отчёт отправил: 11589. Yefim Выполнено за 49 мин. [Показать отчёт] Научился: Узнал о существовании статуса потоков. Попытался ими управлять. Но не все получилось. Сложности: Непонятно зачем в функции Run() нужно 2 цикла. У меня все работает с одним. Комментарии: Попытался управлять Питонами с помощью статуса. Но не все получилось. Например, хотел по нажатию клавиши временно приостанавливать поток методом .Suspend(), а затем освобождать методом t[ip].Resume(); (См. в скриншоте закомментированный текст. Условие в строке 52 как-то странно работает: всегда true) Кто-то может указать на ошибку? Зато проверку Thread.ResetAbort(); сделал по-другому, менее жестко: я решил на 2 секунды приостановить выбранного питона, затем освободить его и поменять ему цвет на белый. В динамике это выглядит красиво. |
|||||
10 | Смысл жизни |
|
|||
На этом уроке мы сделаем красивое завершение потока. Также добавим крестики на экран для "логичного" завершения жизни питона. Смысл жизни - в самой жизни, каждый питон это понял, а ты?.. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 49 мин. [Показать отчёт] Научился: Узнал, что питоны тоже могут красиво умирать. Сложности: Поскольку мои питоны хвостатые, пришлось немного повозиться, чтобы позволить им благородно умереть. Комментарии: Прежде всего хочу поделиться своим открытием. Оказывается в свойствах консольного окна можно устанавливать размеры не тольео стандартными 80х25. Я установил 120х35. Можно сказать - мы стали профессиональными киллерами. А я даже умудрился одним выстрелом(клавишей) убивать 2-х питонов. Кроме того, я доработал функцию Info(char mode) и теперь каждый погибший питон удостаивается мемориальной доски с надписью: "Светлая Память!" Если питон погиб от выстрела - эта надпись белая. |
|||||
11 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с окончанием миникурса "Бурные потоки". Напиши, пожалуйста, отзыв об этом курсе. Что тебе понравилось, что было сложным, что новым, что можно было бы сделать лучше. Ты молодец! Какой курс ты будешь проходить следующим? Отчёт отправил: 11589. Yefim Выполнено за 29 мин. [Показать отчёт] Научился: Писaть отзыв о куpсe Сложности: Подбирать слова, чтобы не повторяться. Комментарии: Как всегда, курс оказался на должной высоте. Никакой воды. Все по делу. Тема потоков - довольно сложная. Но удачная иллюстрация (питоны-зайцы), плюс уникальная способность сложные вещи объяснять простым языком свели всю сложность на нет. Конечно такую тему как потоки охватить в полном объеме за отведенное время невозможно. Зато пробудился страшный аппетит к более глубокому изучению теории потоков. А это дорогого стоит. Почти после каждого урока я не просто копировал код, а старался добавлять свою импровизацию. По ходу дела узнал что-то новое по программированию и технике набора кода. Что касается добавления функциональности, то есть немало идей. Во-первых нечестно, что питоны движутся а зайцы нет. Можно реализовать интеллектуальных питонов. То есть - заставить их двигаться не случайно, а целенаправленно. Следующий курс буду проходить Сетевые технологии. |
|||||
12 | VIP. Игры со словами |
|
|||
Если есть файл из 27000 слов, то с его помощью можно сделать очень много интересного. На уроке мы ищем палиндромы, детские слова и анаграммы. Хорошее подспорье для игры Эрудит. Отчёт отправил: 11589. Yefim Выполнено за 1 час. 56 мин. [Показать отчёт] Научился: Манипулировать словами Сложности: Удержвть свое восхищение Комментарии: После такого урока написать алгоритм игpы в гоpодa не представляет труда. Задался целью найти, так называемые, Зеркальные слова, Если слово читается слева и справа. По моему получилось! |
|||||
Итого: 12 видеоуроков |
3 час. 38 мин. 1 тест |
25 чел. | |||
Финалисты: Максим Лапшинов, Андрей Н., Новопашин Владимир, Сергей Соколов, Артём, Елена, Станислав, Алексей|BrisK|Кривицкий, Yefim, Сергей, Tekashnik, Алексей Малышев, Александр, Sergio, Денис, chokayes, Николай Денисов, ser2018, Иван Воронин, Max, Кирилл, Дмитрий, Anatoli, Алексей В., MaxB . |