Дата | Видеоурок | Результат | |
---|---|---|---|
Бурные потоки ФИНАЛЬНЫЙ УРОК | + 20 | ||
Ознакомился с классом Thread, с приемами синхронизации потоков (Monitor -аналог lock), как корректно останавливать потоки, используя генерацию исключения abort, и в дальнейшем обработка этого исключения, возможность выполнить reset abort-а не было все ок, пока курс не выбрал. Очень хотелось бы увидеть курсы по wpf, wcf в исполнении Евгения. Проходил несколько курсов на других ресурсах, манера расказа-показа Евгения лучшая в инете. |
|||
Бурные потоки Смысл жизни | + 20 | ||
практическому применению на примере, корректного завершения потока не было все ок |
|||
Бурные потоки Замри! | + 20 | ||
Генерация исключения у потока методом Abort, и при обработке исключения можно отменить остановку потока ResetAbort() не было все ок |
|||
Бурные потоки Приоритет | + 20 | ||
ознакомился с классом Monitor обеспечивает синхронизацию потоков. аналог блока lock Monitor.Enter(какое нить поле) - задает блокировку. Monitor.Exit(поле указанное в Enter) освобождает блокировку не было все ок |
|||
Tinklavimas Знакомство | + 20 | ||
ничему не было идем дальше ) |
|||
Бурные потоки Бурная жизнь | + 20 | ||
методу join, основной поток дожидается окончания действия потока, у которого вызван метод join не было все ок |
|||
Бурные потоки Поток питонов | + 20 | ||
Запускать потоки, определять критическую секцию и блокировать ее с помощью переменной типа object (тип может быть любой кроме value type). Если запущенные потоки не являются фоновыми (IsBackground = false), основной поток приложения не закроется, будет дожидаться окончания работы всех потоков запущенных в процессе не было хороший, информативный урок |
|||
Бурные потоки Поворот головы | + 20 | ||
ожидаю потоков не было все ок, питонов оживил- при создании питона помещаю в коллекцию, затем проходя по коллекции вызываю метод step c интервалом секунда |
|||
Бурные потоки Питонатор | + 20 | ||
из потоков ничему, но все впереди. Создавать питона не было метод show выполнил |
|||
Game Xonix 5 ошибок обучающих курсов. Java + Xonix | |||
|
|||
Бурные потоки Зайчики | + 20 | ||
уяснил что функции должны быть короткими, сам реализовал в два метода не было не статические переменные (разные для разных экземпляров класса) должны быть определение головы, хвоста, движение в какую сторону |
|||
Бурные потоки Террариум | + 20 | ||
по номеру позиции вставлять символ в консоль не было рендомный метод добавить кролика реализовал |
|||
Бурные потоки Вступление | + 20 | ||
ничему, все впереди не было статичные поля нужны для хвоста и головы |
|||
Коллекция графов ФИНАЛЬНЫЙ УРОК | + 20 | ||
узнал что такое граф, научился проходить его в глубину используя очередь, в ширину используя стек. Понял что из коллекций нужно использовать типизированные (быстрее работаю, нет упаковки-распаковки) т.е. ключ-значение Dictionary, просто значение HashSet. С остальными думаю можно не заморачиваться, а для хранения логических значений использовать BitArray не было отличный, доходчивый курс |
|||
Коллекция графов Глубокий алгоритм | + 20 | ||
впервые использовал стек не было все ок |
|||
Коллекция графов Глубокий поиск | + 21 | ||
Проходить граф вглубь не было все ок |
|||
Коллекция графов Визуализация процесса | + 20 | ||
Увидел отличный пример использования делегата, вызов функции с WindowsForm в другом невизуальном классе классе все понятно все ок |
|||
Коллекция графов Широкий пошаговый ход | + 20 | ||
ошибка исправил сам ранее не было, за визуализацию не взялся все ок |
|||
Коллекция графов Широкий алгоритм | + 20 | ||
если меняется элемент коллекции и используем перечеслитель выходит exception не было поменял hashtable на типизированный Dictionary у "Вершин", и в перечислителе преобразовал вершины.ToArray() стало компилироваться |
|||
Коллекция графов Широкий поиск | + 20 | ||
проходить граф не было все ок |
|||
Коллекция графов Шахматная доска | + 20 | ||
иницилизировать шахматный граф не было все ок |
|||
Коллекция графов Отображение | + 20 | ||
ничему не было все ок |
|||
Коллекция графов Инициация | + 20 | ||
ничему не было, если граф правильно нарисован... все ок |
|||
Коллекция графов Рёбра | + 20 | ||
ничему, коллекцию в коллекции предложил использовать на предыдущем уроке Dictionary<int, List<int>> не было при заполнении графа дописал новый метод, который добавляет к одной вершине несколько вершин (из int массива) |
|||
Коллекция графов Вершины | + 20 | ||
не совсем к теме урока относится, но попробовал благодарю занятию... в hashtable храняться object, и нельзя использовать как дженерик коллекцию не было ребра можно также хранить в hashtable (вершина1, вершина2 ) только при поиске проверять содержания не только по ключу но и менять местами на значение, т.е. чтоб не дублировать ребра |
|||
Коллекция графов Граф | + 20 | ||
стыдно сказать, но не знал что такое граф не было можно хранить в дженерике Dictionary и в нем еще один дженерик List: Dictionary<int, List<int>> dict = new Dictionary<int, List<int>>(); заполнение очевидное , где ключ Dictionary это вершина, List<int> связанные с ключом другие вершины |
|||
Коллекция графов BitArray | + 20 | ||
BitArray массив для хранения логических значений. Ознакомился с операндом Xor (истина 0 1, 1 0. все остальное ложно ) 5110 байт для 40 000 элементов не было выбрал метод And (логическое умножение) |
|||
Коллекция графов Hashtable | + 20 | ||
ListDictionary рекомендуется для коллекций не более 10 элементов Hashtable коллекция упорядоченная по хэш коду, рекомендуется использовать для быстрого поиска HybridDictionary до небольшого кол-ва элементов это ListDictionary, после прохождения контрольной точки (по умолчанию 8) , работает как HashTable не было по добавлению элементов самый медленный ListDictionary, Hashtable c HybridDictionary примерно одинаково, но Hashtable немного-немного медленнее (пробовал при кол-ве элементов 60 000) |
|||
Коллекция графов ListDictionary | + 20 | ||
познакомился с ListDictionary, применять его можно, при небольшом кол-ве элементов. в ListDictionary хранятся ключ и значение. также можно обращаться и по индексатору не было попробовал функцию Contains содержит ли коллекция искомый ключ |
|||
Коллекция графов Array vs List | + 21 | ||
наглядно увидел в сравнении скорость работы массива, arrayList и типизированного листа массив самый быстрый(но у него есть преимущество, задан размер ), второй типизированный лист и последний - arrayList не было сравнил также метод Clear, естественно работает быстрее у типизированного List |
|||
Коллекция графов
List |
+ 20 | ||
ходить по коллекции используя свойство перечислителя MoveNext не было попробовал использовать метод ConvertAll, работает через делегат Converter. сконвертировал исходный лист из int в long |
|||
Коллекция графов ArrayList | + 1 | ||
ArrayList не использовал ранее, а использовал дженерик List, но все равно полезно для понимания Узнал что при добавлении элементов, фактическое содержание увеличивается в 2 раза найти изначальную емкость пустого ArrayList = 16 LastIndexOf возвращает номер позиции |
|||
Итератор ФИНАЛЬНЫЙ УРОК | + 20 | ||
на текущем уроке ничему, в целом на курсе да научился ) не было отличный курс, полностью помог разобраться с интерфейсами и их реализацией iEnumerator, iEnumerable, постиг магию оператора yield, также понял, что не обязательно создавать класс для перебора, вместо класса используем метод с оператором yield. Следующий курс видимо будет "Бурные потоки" |
|||
Итератор Итератор. Один метод вместо классов. | + 20 | ||
Убедился в необязательности в создании класса все ок классный курс, проникся магией оператора yield |
|||
Итератор Итератор. Список простых чисел. | + 20 | ||
формировать список по мере обращения не было все ок |
|||
Итератор Итератор. Волшебное слово yield. | + 20 | ||
использовать yield - скрытно реализует интерфейс IEnumerator все ок все ок |
|||
Итератор Итератор. Зачем нужно два класса | + 20 | ||
форматированию пробелов, понял зачем выделять реализацию IEnumerable от IEnumerator ровно отобразить таблицу умножения все ок |
|||
Итератор Итератор. Перебор простых чисел. | + 20 | ||
явному указанию какой интерфейс реализуем не было все ок |
|||
Итератор Итератор. Перебор чисел в итераторе. | + 20 | ||
реализации метода MoveNext не было все ок |
|||
Итератор Итератор. Создание пустого итератора. | + 20 | ||
ознакомился с итерфейсами IEnumerable, IEnumerator Итератор используется для прохода по всем элементам объекта, т.е. для возможности использования цикла foreach не было все ок |
|||
Итератор Итератор. Разложение числа на простые множители. | + 20 | ||
алгоритму разложения на простые множители не было все ок |
|||
Теория ООП Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. | + 20 | ||
реализации метода - "поймал" разных объектов, кругов и квадратов не было все ок |
|||
Теория ООП Интерфейс. VIP. Пересечение прямоугольников. | + 20 | ||
ничему не было все ок |
|||
Теория ООП Интерфейс. VIP. Квадратики тоже хотят играть. | + 20 | ||
ничему не заработало функция поймал, ссылки на работе не доступны, буду смотреть на след. уроке все ок |
|||
Теория ООП Интерфейс. ФИНАЛЬНЫЙ УРОК. | + 22 | ||
ничему не было наглядно увидел силу ООП, как легко можно менять игру (реализацию) , если правильно продумать абстракцию Доходчиво, легко объясняет Евгений. Красивая задача получилась! Теорию я знал и ранее практики нет. Хороший пример чтоб самому начать мыслить объектами! Следующий курс подберу с использованием делегатов, событий. Евгений какой порекомендуете? |
|||
Теория ООП Интерфейс. Создаём новую игру. | + 22 | ||
ничему продумать реализацию SetNewVirus(Игрoк), FindNewVirus() FindNewVirus() используем вложенные циклы, верхний цикл бежим по всем вирусным игрокам, вложенный цикл по всем игрокам(внутри проверка если не зараженный), если зараженный поймал не зараженного- заражаем SetNewVirus SetNewVirus(Игрoк) добавляем в массив зараженных и вызываем метод Голя. После этого проверка, если не зараженных остался один , то массив зараженных чистим и добавляем последнего пойманного все ок |
|||
Теория ООП Интерфейс. Изменяем правила игры. | + 20 | ||
ни чему не было моя версия в предыдущей задаче- хранить предыдущего лидера, меньше строчек кода ) Новое правило - игра колдуны, "Голя" кого нить догнал, тот игрок останавливается на какое- то определенное время, "Голя" пытается догнать всех остальных, т.е. всех остановить, если ему это удалось, последний пойманный становиться "Голей" |
|||
Теория ООП Интерфейс. Кружочки гоняются друг за другом. | + 20 | ||
ничему все круги были одного цвета, проблему нашел, при прорисовки круга не брался цвет с экземпляра а указывался явно, моя ошибка Чтоб исправить ошибку с переГолированием, ввел новое поле "Предыдущий лидер" в класс GameCatch, добавил проверку не являлся ли пойманный игрок предыдущим лидером, если являлся - назначение лидера не происходит, работает |
|||
Теория ООП Интерфейс. Кружок готов к игре! | + 20 | ||
Обращаться к текущему экземпляру объекта через this без параметров не было Видимо, для запуска игры запускать циклически с паузами gameCatch.Step() предварительно создав экземпляр на форме GameCatch |
|||
Теория ООП Интерфейс. Кружок хочет играть. | + 20 | ||
ничему метод беги мне представляется изменением координатов круга рендомными смещениями по x и y, метод поймал - если круг лидер после смещения залез на другой круг все ок |
|||
Теория ООП Интерфейс. Запускаем кружки на площадку! | + 20 | ||
закрепляю работу с грфикой не было метод Clear немного надо изменить на graphics.Clear(picture.BackColor ) - вместо статичного указанного цвета, а то изначально в дизайнере можно указывать только тот цвет, который используется в коде, но это мелочи... |
|||
Теория ООП Интерфейс. Кружок на площадке. | + 20 | ||
рисовать круги закрепил подбирать параметры для рисования все ок |
|||
Теория ООП Интерфейс. Площадка для игры. | + 20 | ||
закрепил работу с графикой не было класс арена нужен для создания, рисования рендомных фигур, т.е. приступили к реализации задуманной абстракции |
|||
Теория ООП Интерфейс. Создаём кружок. | + 20 | ||
ничему продумать дальнейшие действия, далее должны видимо инициализировать круги и заполнять список игроков все ок |
|||
Теория ООП Интерфейс. Алгоритм игры. | + 20 | ||
необходимо реализовать интерфейс, заполнить список игроков понять постановку задачу, только на этом уроке понял, что должны реализовывать методы с интерфейса все ок |
|||
Теория ООП Интерфейс. Правила игры. | + 20 | ||
своя реализация: private void SetNewLeader(Игрок gamer) { leader = gamer; } private void FindNewLeader() { foreach (var gamer1 in gamers) { foreach (var gamer2 in gamers) { if (gamer1.Поймал(gamer2)) { SetNewLeader(gamer2); return; } } } } понять смысл методов SetLeader и GetLeader все ок |
|||
Теория ООП Интерфейс. Зачем он нужен. | + 20 | ||
интерфейс содержит сигнатуру, которую потом реализовывают классы наследуемые от интерфейса не было все ок |
|||
Теория ООП ПОЛУФИНАЛЬНЫЙ УРОК. | + 20 | ||
ни чему все ок хорошо доходчиво объясняет Евгений, примеры отличные все хорошо понимается, теорией я и до курсов владел, но практически не применял, хочу научится мыслить объектно и применять на практике, были моменты которые не знал, например вызов базового метода из дочернего. |
|||
Теория ООП Перемещение Снеговиков | + 20 | ||
обращаться к базовому методу через base не было все ок |
|||
Теория ООП Перемещение других фигур | + 20 | ||
ничему подбирать координаты все ок |
|||
Теория ООП Перемещение круга | + 20 | ||
ничему 4. Измeнить мeтoд Circle.Move() чтoбы кpyжoк пeрeмещался. В задание неправильно указан метод, изменить надо Circle.Draw, а то тыкался, пришлось повторно видео пересматривать, ну это мелочи все ок |
|||
Теория ООП Спрайт для Снеговика | + 20 | ||
пример класса: при первичной инициализации пустой список, с возможностью добавления элементов с методом SetGraphic подзапутался, в каких местах вызывать... все ок |
|||
Теория ООП Мощь полиморфизма | + 20 | ||
синтаксису переопределяемых методов не было все ок |
|||
Теория ООП Переезд graph в базовый класс | + 20 | ||
теория и была в голове, смотрю как на практике происходит, надеюсь скоро научусь также объектами мыслить не было все ок |
|||
Теория ООП Переезд метода Draw | + 20 | ||
конструкция typeOf работает корректней чем моя, пришлось добавить !(shape is ColorCircle) if (shape is Circle && !(shape is ColorCircle)) (shape as Circle).Draw(); предыдущий комментарий все ок |
|||
Теория ООП Приведение с мотором | + 20 | ||
ничему. в классе Shape, Pixel разместили для определения смещения снеговика не было все ок |
|||
Теория ООП Фигуральный базовый класс | + 20 | ||
хорошая идея создать пустой базовый класс для объединения в один массив объектов, у которых нет ничего общего. функцию Draw реализовал через if - if (shape is line) Draw(shape as line) ... не было все ок |
|||
Теория ООП Богатое наследство | + 20 | ||
Научился синтаксису вызова базового конструктора из дочернего. Наследование это перенос всех полей, методов... все что содержится в родительском объекте в объект дочерний. Короче говоря, избавление от копи-паста не было хорошо объясняет человек |
|||
Теория ООП Второй Снеговик | + 20 | ||
ни чему придумать как изменять координаты, кроме ползунков на каждый параметр, которые озвучили на уроке не пришло лучше мыслей, видимо надо создавать какой то класс в котором объединяются все элементы в один снеговик и через один метод который реализуется несколькими методами меняются координаты размер или поворачиваются все элементы снеговика все ок |
|||
Теория ООП Рисуем Снеговика | + 20 | ||
ничему не было все ок |
|||
Теория ООП Цветные карандаши | + 20 | ||
усваивается инкапсуляция , множественные конструкторы не было все ок |
|||
Демо софт Двенадцать месяцев | + 20 | ||
ничему не было хороший урок для начинающих |
|||
Теория ООП Расстояние между пикселями | + 20 | ||
закрепил вызов через другой конструктор this не было все ок |
|||
Теория ООП Пиксели для классов | + 20 | ||
вызов одного конструктора из другого использование this не было все ок |
|||
Теория ООП Структура vs Класс | + 20 | ||
Понимание было про отличие классов, но все равно полезно. Структура значимый тип, класс ссылочный тип. Структура хранится в стеке, класс в куче. При передаче структуры в качестве параметра в функцию, происходит копирование и сам входящий параметр не меняется, в случае класса передается ссылка и по ссылке значение меняются. В структуре нельзя определит дефолтный конструктор. В структуре нельзя определить финализатор. Структура это маленький класс. От структуры нельзя наследоваться. не было доходчиво объясняет человек |
|||
Теория ООП Структура пикселя | + 20 | ||
больше появилось понимания отличия структуры от класса подбирать координаты точек, подсматривал в видео уроке все ок |
|||
Теория ООП Круглый класс | + 20 | ||
Рисовать круг сам бы координаты долго подбирал все ок |
|||
Демо софт Вам телеграмма! | + 20 | ||
ничему скрин телефона отправить на комп, с работы это сложно сделать скидки на пакеты уменьшили для формулистов - это печально |
|||
Теория ООП Второй класс | + 21 | ||
ничему не было хороший понятливый урок |
|||
Теория ООП Первый класс | + 20 | ||
ничему не было хорошо, наглядно объясняет человек |
|||
Теория ООП Урок рисования | + 20 | ||
использовать классы Bitmap, Graphics, Pen, ранее никогда не рисовал в c# сам бы я долго подбирал координаты все ок |
|||
Теория ООП Инкапсуляция мечты | + 20 | ||
Инкапсуляция - управление данными через методы, скрытие данных от других кусков программы, объединение данных и методов не было хороший вводный урок |
|||
Демо игры Лабиринт 2D - меню | + 20 | ||
ничему подобрать звук Объясняет хорошо Евгений |
|||
Демо игры Картинка с секретом | + 20 | ||
координаты на форме относительно какого ли объекта использовать сложного не было хороший урок для начинающих, немного показалось затянуто, т.к. опыт определенный у меня есть |
|||
Демо софт Вступительное слово | + 20 | ||
ничему не было ранее создавал программы нативным методом, без знаний ООП, хочу научится писать в хорошем стиле |
|||
Нано-игры Арканоид - Уровень и ракетка | |||
|