# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
На этом уроке мы сделаем небольшое теоретическое введение в потоки и начнём создавать консольное приложение с самодостаточным классом для Питона. Вопрос: какие ещё статические поля нужно добавить в класс Питона? Отчёт отправил: 19391. Dmitry-BY Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: избавиться в консольном приложении от статика. Но пока не пойму, зачем это надо. Я бы добавил еще размер шага змейки. Сложности: пока все понятно |
|||||
2 | Террариум |
|
|||
На этом уроке мы подготовим экран для наших питонов. Сделаем по краям стенки, чтобы они не уползли. Напишем функцию для сохранения и отображения символов. * Создайте метод AddHare() для добавления зайчика. Отчёт отправил: 19391. Dmitry-BY Выполнено за 4 дня 23 час. 21 мин. [Показать отчёт] Научился: реализация экрана в консоли, знакомство с Random Сложности: как быстро и проще очертить экран на консоли |
|||||
3 | Зайчики |
|
|||
На этом уроке мы напишем статический метод для добавления зайчика на поле. Для этого нам потребуется несколько вспомогательных методов, которые окажутся полезными и в других частях нашей программы. В конце урока мы выведем на экран сотню зайчиков :) Ответить на вопрос: какие не статичные поля нужны питону? Отчёт отправил: 19391. Dmitry-BY Выполнено за 3 дня 5 час. 11 мин. [Показать отчёт] Научился: рандомное добавление зайчиков. Сложности: Я в пердыдущем уроке делал чуть по другому. Все реализовал в одном методе. Не совсем понимаю зачем нам делать проверку, добавление зайчика за пределы стены. У на в любом случае это не произойдет, мы же делаем от 0 до size.x и size.y. Я бы добавил следующие нестат. поля для питона: 1. количество съеденных зайчиков 2. выйграл или проиграл 3. первоначальная позиция питона на экране |
|||||
4 | Питонатор |
|
|||
На этом уроке мы опишем нужные поля для нашего питона и создадим статическую функцию для создания его экземпляра. Также нам понадобится конструктор, который мы сделаем приватным. Отчёт отправил: 19391. Dmitry-BY Выполнено за 1 день 6 час. 48 мин. [Показать отчёт] Научился: Было все понятно. Реализовал добавление питона. Вспомнил что такое очередь, какие методы есть для работы с очередью. Сложности: сложного пока ничего не было. |
|||||
5 | Поворот головы |
|
|||
На этом уроке мы сделаем отображение питона, поворот его головы и передвижение по экрану. * Оживить питонов самостоятельно. Отчёт отправил: 19391. Dmitry-BY Выполнено за 1 день 10 час. 44 мин. [Показать отчёт] Научился: добавил методы step, turn turnto. Сложности: Попробовал оживить питонов через цикл для вызова метода step. сложностей больших не возникло. |
|||||
6 | Поток питонов |
|
|||
На этом уроке мы наконец-таки займёмся потоками. Запустим наших питонов сначала в одном потоке, а потом в отдельных - нам понадобится метод Run(). Создадим критическую секцию через lock. Протестируем режим Foreground/Background режимы. Отчёт отправил: 19391. Dmitry-BY Выполнено за 4 дня 13 час. 7 мин. [Показать отчёт] Научился: Вспомнил что такое потоки и как их использовать. Познакомился, как использовать критические секции, а также что такое у потока свойство Background. Сложности: Наш класс Python сильно увеличился. было бы классно все таки повынoсить часть логики в другие места. Но в целом все хорошо. Спасибо за ваши уроки. |
|||||
7 | Бурная жизнь |
|
|||
На этом уроке мы допишем класс питон и получим эстетическое удовольствие от созерцания нашего террариума с нашими Питонами и Зайцами. * Придумать свою фишку и реализовать, написать, что сделал. Отчёт отправил: 19391. Dmitry-BY Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: добавил тело питона, чтобы проглатывал зайцев. Я думаю стоит сделать вывод счеткиков, сколько зайцев съел каждый питон. А также не стоит добавлять новых зайцев. Игра должна продолжаться пока не съедят последнего зайца. Сложности: сложностей не было. |
|||||
8 | Приоритет |
|
|||
На этом уроке мы поиграемся с приоритетом потоков, воспользуемся монитором для создания критической секции, выведем на экран легенду потоков с id. Отчёт отправил: 19391. Dmitry-BY Выполнено за 47 мин. [Показать отчёт] Научился: Узнал про виды потоков, как установить их приоритет. Узнал про метод Монитор Сложности: я думаю если не правильно установить приоритет потоков, в будущем создашь себе куча проблем. Вывод: желательно меньше этим заниматься. |
|||||
9 | Замри! |
|
|||
На этом уроке мы поговорим о статусах потока: Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped. Создадим функционал для остановки потоков по нажатию клавиш. И научимся сопротивляться этим остановкам. Отчёт отправил: 19391. Dmitry-BY Выполнено за 1 день 14 час. 56 мин. [Показать отчёт] Научился: узнал глубже как остановить и управлять потоками. Сложности: При добавлении в метод Start while (true) { ConsoleKeyInfo key = Console.ReadKey(); if (key.KeyChar >= '0' && key.KeyChar <= '9') threads[Convert.ToInt16(key.KeyChar.ToString())].Abort(); } Вылазит исключение: System.Threading.ThreadAbortException HResult=0x80131530 Message=Поток находился в процессе прерывания. Source=mscorlib StackTrace: at System.Threading.Monitor.Enter(Object obj) at Python.Python.Run() in C:\Users\Administrator\projects\Python\Python\Python.cs:line 220 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() Я так понимаю связано с тем что поток что то не успел завершить. Пытался через отладку понять, также убрал все блоки(block). НО пока безрезультатно. Кто нибудь сталкивался с таким в данном уроке. Или просьба наведите в нужном направлении, куда копать? |
|||||
10 | Смысл жизни |
|
|||
На этом уроке мы сделаем красивое завершение потока. Также добавим крестики на экран для "логичного" завершения жизни питона. Смысл жизни - в самой жизни, каждый питон это понял, а ты?.. Отчёт отправил: 19391. Dmitry-BY Выполнено за 23 мин. [Показать отчёт] Научился: Спасибо, все понравилось. Узнал про потоки. когдла то раньше поднимал эту тему у себя, но не было потребности на работе. Сейчас возникла. Сложности: все понятно. у матросов нет вопросов |
|||||
11 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с окончанием миникурса "Бурные потоки". Напиши, пожалуйста, отзыв об этом курсе. Что тебе понравилось, что было сложным, что новым, что можно было бы сделать лучше. Ты молодец! Какой курс ты будешь проходить следующим? Отчёт отправил: 19391. Dmitry-BY Выполнено за 3 мин. [Показать отчёт] Научился: Всегда хотел познакомиться с многопоточностью. Узнал базу по этой теме. Спасибо Евгений. Сложности: Не всегда с первого раза была понятна логика. Приходилось пересматривать два раза. |
|||||
12 | VIP. Игры со словами |
|
|||
Если есть файл из 27000 слов, то с его помощью можно сделать очень много интересного. На уроке мы ищем палиндромы, детские слова и анаграммы. Хорошее подспорье для игры Эрудит. |
|||||
Итого: 12 видеоуроков |
3 час. 38 мин. 1 тест |
25 чел. | |||
Финалисты: Максим Лапшинов, Андрей Н., Новопашин Владимир, Сергей Соколов, Артём, Елена, Станислав, Алексей|BrisK|Кривицкий, Yefim, Сергей, Tekashnik, Алексей Малышев, Александр, Sergio, Денис, chokayes, Николай Денисов, ser2018, Иван Воронин, Max, Кирилл, Дмитрий, Anatoli, Алексей В., MaxB . |