# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
На этом уроке мы сделаем небольшое теоретическое введение в потоки и начнём создавать консольное приложение с самодостаточным классом для Питона. Вопрос: какие ещё статические поля нужно добавить в класс Питона? Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Вопрос: какие ещё статические поля нужно добавить в класс Питона? Ответ: Поле, массив для его представления. |
|||||
2 | Террариум |
|
|||
На этом уроке мы подготовим экран для наших питонов. Сделаем по краям стенки, чтобы они не уползли. Напишем функцию для сохранения и отображения символов. * Создайте метод AddHare() для добавления зайчика. Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: --- |
|||||
3 | Зайчики |
|
|||
На этом уроке мы напишем статический метод для добавления зайчика на поле. Для этого нам потребуется несколько вспомогательных методов, которые окажутся полезными и в других частях нашей программы. В конце урока мы выведем на экран сотню зайчиков :) Ответить на вопрос: какие не статичные поля нужны питону? Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: > какие не статичные поля нужны питону? Координаты тела и его длина, цвет, скорость и направление движения |
|||||
4 | Питонатор |
|
|||
На этом уроке мы опишем нужные поля для нашего питона и создадим статическую функцию для создания его экземпляра. Также нам понадобится конструктор, который мы сделаем приватным. Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: --- |
|||||
5 | Поворот головы |
|
|||
На этом уроке мы сделаем отображение питона, поворот его головы и передвижение по экрану. * Оживить питонов самостоятельно. Отчёт отправил: 9263. Андрей Н. Выполнено за 25 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Питон не отображался в самом начале из-за проблемы в методе ShowMe: PutScreen(cHead, color, aHead[(int)arrow]); PutScreen(cNone, color, aNone); т.е. он рисуется, а потом в том же самом месте затирается, если поменять строчки местами, то сразу все становится на свои места :) |
|||||
6 | Поток питонов |
|
|||
На этом уроке мы наконец-таки займёмся потоками. Запустим наших питонов сначала в одном потоке, а потом в отдельных - нам понадобится метод Run(). Создадим критическую секцию через lock. Протестируем режим Foreground/Background режимы. Отчёт отправил: 9263. Андрей Н. Выполнено за 25 мин. [Показать отчёт] Научился: Научился запускать код в отдельном потоке и базовой работе с этим потоком. Сложности: --- Комментарии: --- |
|||||
7 | Бурная жизнь |
|
|||
На этом уроке мы допишем класс питон и получим эстетическое удовольствие от созерцания нашего террариума с нашими Питонами и Зайцами. * Придумать свою фишку и реализовать, написать, что сделал. Отчёт отправил: 9263. Андрей Н. Выполнено за 35 мин. [Показать отчёт] Научился: --- Сложности: --- Комментарии: Очень сложный нетривиальный неочевидный алгоритм перемещения змей получается, но в принципе суть курса не в этом, а в изучении работы с потоками, поэтому не страшно. > Пpидyмaть cвою фишкy и реализовaть, написaть, что сделал. Добавил у змей поле для скорости speed, с помощью него у разных змей реализуется разная задержка в теле Run(): Thread.Sleep((10 - speed) * 25 + 50), где speed может быть от 0 до 9 |
|||||
8 | Приоритет |
|
|||
На этом уроке мы поиграемся с приоритетом потоков, воспользуемся монитором для создания критической секции, выведем на экран легенду потоков с id. Отчёт отправил: 9263. Андрей Н. Выполнено за 20 мин. [Показать отчёт] Научился: Узнал о Monitor и о способе задания приоритета потока. Сложности: --- Комментарии: При выводе легенды все же стоит использовать форматированный вывод, например: Console.Write("#{0,-2}\t{1,3}", Thread.CurrentThread.ManagedThreadId, body.Count); Самое главное здесь - выровнять длины змей по правому краю, т.к. если змея имеет длину 10, а потом уменьшается до 9, то этот нолик от десятки сам не исчезнет... |
|||||
9 | Замри! |
|
|||
На этом уроке мы поговорим о статусах потока: Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped. Создадим функционал для остановки потоков по нажатию клавиш. И научимся сопротивляться этим остановкам. Отчёт отправил: 9263. Андрей Н. Выполнено за 30 мин. [Показать отчёт] Научился: Научился обрабатывать запросы на прерывание процесса и (при необходимости) противодействовать им. Сложности: --- Комментарии: --- |
|||||
10 | Смысл жизни |
|
|||
На этом уроке мы сделаем красивое завершение потока. Также добавим крестики на экран для "логичного" завершения жизни питона. Смысл жизни - в самой жизни, каждый питон это понял, а ты?.. Отчёт отправил: 9263. Андрей Н. Выполнено за 25 мин. [Показать отчёт] Научился: Научился использовать внешние прерывания потока с какой-то пользой, завершение потока наполнять смыслом, так сказать. Сложности: --- Комментарии: --- |
|||||
11 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с окончанием миникурса "Бурные потоки". Напиши, пожалуйста, отзыв об этом курсе. Что тебе понравилось, что было сложным, что новым, что можно было бы сделать лучше. Ты молодец! Какой курс ты будешь проходить следующим? Отчёт отправил: 9263. Андрей Н. Выполнено за 10 мин. [Показать отчёт] Научился: По отношению к курсу в целом. Курс достаточно интересный, позволяет изучить азы работы с потоками: их созданию и прерыванию, заданию приоритетов и обработке запросов на прерывание. Сложности: Пожалуй, особо сложного ничего не было лично для меня, единственное что смущает - это сам код змей, он достаточно запутан и вникнуть в него лучше особо не пытаться, задачу курса - усвоить азы работы с потоками - это решить не мешает. Комментарии: Ожидал от курса более глубокого рассмотрения работы с потоками, хотя, возможно, для кого-то и этот объем будет достаточно сложен для понимания. К сожалению, в это время года у меня традиционно очень мало времени, поэтому переписать код возможности сейчас нет, но он нуждается в большой работе, возможно даже в полном переписывании. Если запал к июлю-августу не пропадет и не появится другого "неотложного" увлечения или идеи, то попытаюсь переписать код этих змей. |
|||||
12 | VIP. Игры со словами |
|
|||
Если есть файл из 27000 слов, то с его помощью можно сделать очень много интересного. На уроке мы ищем палиндромы, детские слова и анаграммы. Хорошее подспорье для игры Эрудит. Отчёт отправил: 9263. Андрей Н. Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Научился играть со словами! Сложности: --- Комментарии: Очень интересный видеоурок! Все-таки для поиска анаграмм выгоднее найти все массивы использования букв один раз и потом работать только с ними, это даст ускорение примерно в 1,5 раза А еще, я сначала не сравнивал длину слов, поиск анаграмм занимал почти минуту, после добавления проверки равенства длин время работы сократилось до 10 с! |
|||||
Итого: 12 видеоуроков |
3 час. 38 мин. 1 тест |
25 чел. | |||
Финалисты: Максим Лапшинов, Андрей Н., Новопашин Владимир, Сергей Соколов, Артём, Елена, Станислав, Алексей|BrisK|Кривицкий, Yefim, Сергей, Tekashnik, Алексей Малышев, Александр, Sergio, Денис, chokayes, Николай Денисов, ser2018, Иван Воронин, Max, Кирилл, Дмитрий, Anatoli, Алексей В., MaxB . |