Дата | Видеоурок | Результат | |
---|---|---|---|
C# Четыре в ряд - Соревнование Оценка позиции | + 14 | ||
Научился думать позиционно, а не комбинаторно. Научиться думать позиционно. Сначала думал, что без поиска вглубь/вширь хорошего бота не написать, но оказалось, что при достаточно хорошей функции оценки позиции бот тоже играет довольно неплохо. Я вот у своего теперь не всегда даже и выигрываю! Хотя, конечно, любой перебор должен легко выиграть у такого бота, поэтому важно комбинировать оба способа достижения цели. В функции оценки еще довольно сложно подобрать коэффициенты для определенных "позиционных событий", одна и та же функция с разными коэффициентами может как играть очень сильно, так и сливать на пустом месте. |
|||
C# Четыре в ряд - Соревнование Пять в Ряд - Соревнование | + 21 | ||
Смотреть видео. Разобраться в авторском коде. Требуется написать класс, реализующий интерфейс IRobot. Этот интерфейс, по сути, содержит одну функцию - оценки позиции на доске. Вот нужно написать эту функцию оценка позиции идет с точки зрения крестиков - первого игрока. |
|||
Базовый ASP.ект Подключение к базе данных | + 20 | ||
Создавать подключение к БД и делать запросы. --- А почему установка ADO.NET провайдера не из nuget? Для конструирования коннекшнстрингов рекомендую использовать готовый класс MySqlConnectionStringBuilder, здесь всё более современно и проверка уже кое-какая на уровне компилятора получается, как минимум это дает некоторую защиту от опечаток и потом мучительных поисков этой ошибки. |
|||
Базовый ASP.ект Создание SQL-запросов | + 20 | ||
Научился писать SQL-запросы --- В СУБД FireBird есть ключевое слово/команда CONTAINING, которая работает как LIKE, но не является регистрозависимой. Возможно, здесь это было бы более уместно, но в mySql похоже нет такой команды. |
|||
Базовый ASP.ект Схема базы данных | + 20 | ||
Создавать таблицы в БД mySql --- Список задач? Хранение наших историй/постов и всей связанной информации. |
|||
Базовый ASP.ект Установка сервера MySQL | + 20 | ||
Научился устанавливать MySQL Server Исправить ошибки в работе MySQL и сбросить пароли от прошлых установок. На работе очень широко используется СУБД FireBird, для нее есть очень мощный инструмент - IBExpert, много приходится со всем этим делом работать, поэтому в SQL немного уже поднаторел. |
|||
Базовый ASP.ект Формирование меню | + 20 | ||
Научился править навигационную панель. --- --- |
|||
Базовый ASP.ект Создание модели Story | + 20 | ||
Создавать модели и передавать их в представление --- Кривоватая модель какая-то, конечно, зачем в модели методы add и прочие. Story - это одна порция данных, т.е одна история, в нее ничего не добавишь, она либо есть, либо ее нет. Нужен какой-то репозиторий, коллекция экземпляров Story, вот тогда добавление отдельной истории будет как создание экземпляра Story и добавления его в репозиторий. |
|||
Базовый ASP.ект Создание пустых страниц | + 20 | ||
Создавать пустые контроллеры и представления --- --- |
|||
Базовый ASP.ект Создание схемы проекта | + 20 | ||
Составлять схему сайта --- --- |
|||
Базовый ASP.ект Выбор темы для проекта | + 20 | ||
Придумывать тематику для сайта --- Сайт будет содержать смешные гифки с котиками) |
|||
Базовый ASP.ект Мы начинаем ASP.NET с MVC | + 20 | ||
Создавать шаблон для ASP.NET MVC проекта --- --- |
|||
Комбинаторика Динамика. Поле дураков | + 20 | ||
Динамическому программированию --- --- |
|||
Игры на JavaScript Сколько мне дней | + 20 | ||
Азам JS --- --- |
|||
ASP.NET и GMaps Запуск ASP.NET MVC | + 20 | ||
Научился создавать проект ASP.NET, добавлять в него контроллеры и представления --- --- |
|||
ASP.NET и GMaps Презентация | + 20 | ||
Придумывать применение технологии Придумать применение технологии Можно разместить на карте фотографии, причем координаты можно взять из EXIF фотки, в большинстве смартфонов туда пишутся координаты при съемке (хотя, идея, конечно, не моя, существует куча таких приложений) |
|||
Секундомер Секундомер - Настройка формы | |||
|
|||
Демо софт Вам телеграмма! | + 20 | ||
Устанавливать телеграм --- Посмотрим зачем это... |
|||
Фотошарп VIP. Делегаты на кубиках | + 20 | ||
По идее научился использовать делегаты, по факту - знаком был с ними ранее =) --- --- |
|||
Бурные потоки VIP. Игры со словами | + 20 | ||
Научился играть со словами! --- Очень интересный видеоурок! Все-таки для поиска анаграмм выгоднее найти все массивы использования букв один раз и потом работать только с ними, это даст ускорение примерно в 1,5 раза А еще, я сначала не сравнивал длину слов, поиск анаграмм занимал почти минуту, после добавления проверки равенства длин время работы сократилось до 10 с! |
|||
Фотошарп ФИНАЛЬНЫЙ УРОК | + 20 | ||
Интересный курс в целом, получил много информации об обработке изображений Сложным было реализовать что-то вне курса, в частности написать проект полностью на WPF А двигаться по курсу вполне можно и новичку-"середнячку" > 5. Кaкoй кypс ты бyдешь прохoдить следyющим? Планирую "добить" все незавершенные курсы. |
|||
Фотошарп Билинейная интерполяция | + 20 | ||
Научился реализации алгоритма билинейной интерполяции --- При использовании четырехпиксельной картинки выяснил, что у меня в методе ближайшего соседа неправильно округление идет, как видно на первом скрине получилось почти всё красным, лишь узкие полосы шириной в один пиксель по краям, на втором скрине видно, что это уже исправлено. Написал операторы сложения для цветов и умножения цвета на число float - так использовать формулы ну гораздо удобнее... :) |
|||
Фотошарп Метод ближайшего соседа | + 20 | ||
Реализации ресайза методом ближайшего соседа --- --- |
|||
Фотошарп Изменение размера | + 20 | ||
Изучил методы ресайза изображений --- --- |
|||
Фотошарп Гамма-коррекция | + 20 | ||
Научился гамма-коррекции изображений --- Логичнее было бы реализовать гамма-коррекцию так же, как и предыдущие виды коррекции Также передать делегат, остальное уже всё есть... |
|||
Фотошарп Градационная коррекция | + 20 | ||
Научился функциональной коррекции изображений --- В шарпе есть некоторые готовые "шаблоны" делегатов, такие как Action, Func и т.п., поэтому не обязательно в таком простом примере писать свой делегат, я использовал просто Func<byte, byte> Ну и передаю функцию как лямбду (куда уж без нее... :D) |
|||
Фотошарп Ярость и контрастность | + 20 | ||
Научился попиксельно менять яркость и контрастность изображений --- В WPF с помощью привязок кое-что можно сделать прямо в XAML-разметке без написания кода, например, слайдер (здесь так называется аналог trackBar'а WinForm), его значение можно забиндить в поле Text элемента TextBlock: <TextBlock Text="{Binding ElementName=slBrightness, Path=Value}" ... /> Здесь slBrightness - имя моего слайдера, так вот при изменении Value в текст-блоке автоматически отображается это значение. Обработчик события писать не требуется |
|||
Фотошарп 256 оттенков серого | + 20 | ||
Научился делать картинку "в оттенках серого" --- Решил сделать проект на WPF. Здесь стандартный набор классов значительно отличается (в общем-то сама работа с графикой отличается), например, класса Bitmap здесь нет вообще. Пришлось много гуглить и читать SO и MSDN, в итоге написал класс-обертку над WriteableBitmap для удобной попиксельной работы с изображением |
|||
Мат Конём и Слоном ПОЛУФИНАЛЬНЫЙ УРОК | + 20 | ||
--- --- Курс очень интересный. Что самое необычное - недооцененность его сложности и разнообразности... Задумка как одного урока к курсу комбинаторике переросла во что-то чуть ли не большее чем сам курс комбинаторики :) |
|||
Мат Конём и Слоном План визуализации | + 20 | ||
Продумывать план визуализации приложения --- --- |
|||
Мат Конём и Слоном Игра без массива | + 20 | ||
Научился читать из файла по определенной позиции --- Реализовал кеширование БД, массив оставил =) Мало ли... для затяжных игрищ =) |
|||
Мат Конём и Слоном Шестнадцать мегабайт | + 21 | ||
Читать и писать файлы побайтово --- --- |
|||
Мат Конём и Слоном Экономия памяти | + 20 | ||
Оптимизировать размер данных --- Ну раз уж мы сеттер написали, то надо его использовать, незачем лишний раз генерировать отдельную структуру: вместо move.MoveFrom = new Coord { index = 0 }; запишем просто move.MoveFrom.index = 0; |
|||
Мат Конём и Слоном Сериализация матрицы ходов | + 20 | ||
Бинарной сериализации .Net --- --- |
|||
Мат Конём и Слоном Нано Шахматы | + 20 | ||
--- --- НаноШахматы выполнил ранее |
|||
Мат Конём и Слоном Мат в 33 хода. | + 20 | ||
Проигрывать в шахматы своей программе --- 0. Патовых ситуаций в нашей базе в принципе быть не может, так как мы решаем с конца, с матовой позиции и выполняем назад только ВОЗМОЖНЫЕ ходы. |
|||
Мат Конём и Слоном 156 матов в полтора хода | + 20 | ||
Научился перебирать возможные ходы назад для черного короля --- --- |
|||
Мат Конём и Слоном Консольная шахматная доска | + 20 | ||
Рисовать в консоли шахматную доску --- --- |
|||
Мат Конём и Слоном Белая коробка | + 20 | ||
Хранить позиции в массиве --- WhiteBox сделал встроенным в Chess, все-таки вне контекста шахматного класса этот вайтбокс неактуален... но для того чтобы не загромождать файл, сделал его partial еще один + от этого - при использовании других nested классов в WhiteBox не требуется указывать префикс "Chess." |
|||
Мат Конём и Слоном Генерация белых ходов | + 20 | ||
Реализации хода назад для трех шахматных фигур Пришлось кое-что подебажить, вкралась очепятка Непонятно, почему не используете String Interpolation (Или у вас C# не шестой?) Код становится более лаконичным: public string ChessNotation => $"{(char)('a' + x)}{8 - y}"; Или здесь: Console.WriteLine($"{++qty} {white.Combo.GetFen()} {white.Combo.WhoThis(white.MoveFrom)}{white.MoveFrom.ChessNotation}-{white.MoveTo.ChessNotation}"); |
|||
Мат Конём и Слоном Псевдо-алгоритм перебора | + 20 | ||
Рисовать Вспомнить буквы --- |
|||
Мат Конём и Слоном Белая и чёрная очередь | + 20 | ||
Поэтапно реализовать алгоритм. --- --- |
|||
Мат Конём и Слоном Чистый ход | + 20 | ||
К-Р-А-С-О-Т-А !-!-! --- То что он Coord зелененьким подчеркивает - решается очень просто: набираете слово override, появляется список что можно заоверрайдить, двойной клик на нужном методе и он добавляется в код - генерируется автоматически, в принципе можно так и оставить уже и все будет работать (тем более у нас эти методы нигде и не используются) |
|||
Мат Конём и Слоном Рефакторинг кода | + 20 | ||
Рефакторингу! --- Сеттер пригодился при реализации AllCoords() :) Логично было бы методы IsKnight/Bishop/King реализовать внутри Combo, тогда этот хвост "combo." не пришлось бы тащить везде за собой да и проверка шаха/мата... что может быть прекраснее: combo.IsCheckmate() :) Ну да ладно, пока и так хорошо Еще, кстати, вместо тернарного: (a > 0 ? 1 : -1) можно использовать Math.Sign(a) ------- PS: У меня сразу запустилось без ошибки, те же 232 позиции было выведено на экран... Так что я даже и не знаю, где вы могли ошибиться, скорее всего опечатка и меня от этого спасло Find/Replase |
|||
Мат Конём и Слоном Две структуры | + 20 | ||
Азам рефакторинга. Решиться на него. Операторы сравнения реализовал в виде лямбда-выражений, ну не зря же мы их изучали в конце-то концов :D Для поля Index добавил и сеттер на всякий случай. |
|||
Мат Конём и Слоном Ворошиловский слон | + 20 | ||
Научился реализации метода проверки атаки клетки слоном. --- --- |
|||
Мат Конём и Слоном Нотация Форсайта - Эдвардса | + 20 | ||
Реализации построения FEN-нотации --- --- |
|||
Мат Конём и Слоном Конь ходит буквой Гэ | + 20 | ||
Читать википедию. --- --- |
|||
Мат Конём и Слоном Королевское правило | + 20 | ||
Писать цикл для перебора всех клеток вокруг черного короля. Писать проверку атаки коня на клетку. --- --- |
|||
Мат Конём и Слоном Перебор всех комбинаций | + 20 | ||
Перебирать все возможные взаимные расположения фигур на доске. --- --- |
|||
Мат Конём и Слоном Постановка задачи | + 20 | ||
Ставить задачу Искать тематическую картинку в интернете --- |
|||
Шифрование Полиалфавитный шифр Виженера | + 20 | ||
Научился шифровать по методу полиалфавитного шифра Виженера --- --- |
|||
Шифрование Перестановочный шифр - 2 этап дешифровки | + 20 | ||
--- --- Выполнил задание на позапрошлом уроке. |
|||
Шифрование Перестановочный шифр - 1 этап дешифровки | + 20 | ||
--- --- Выполнил всё на прошлом уроке |
|||
Шифрование Перестановочный шифр - 2 этап шифровки | + 20 | ||
1. Сoздaть cтoлбцы втоpой сетки. 2. Скoпиpoвaть их в нyжном порядке. 3. Сфopмиpoвать шифpовку. 4. Пpoвepить рaботу прогpаммы. 5. Рacшифpoвать cообщение и нaписать oтвет. --- --- |
|||
Шифрование Перестановочный шифр - Алфавитный ключ | + 21 | ||
1. Сoздaть фyнкцию getAbc(). 2. Пoмecтить pезyльтат её рабoты в текстoвое поле textKeyAbc. --- Подход автора, конечно, сомнителен... GetAbc() - костыль тот еще... Функция (которая возвращает значение) попутно изменяет еще какие-то глобальные данные! Правильно было бы, конечно, вынести весь этот функционал в отдельный класс и обращаться к нему чтобы получить ключ стринговый или массив abc. Да и использовать можно было бы какую-нибудь коллекцию словарного типа и с помощью Sort() отсортировать сразу и abc и ключ, но это, конечно, в данном примере не эффективно и привело бы к лишним затратам ресурсов и времени |
|||
Шифрование Перестановочный шифр - 1 этап шифровки | + 20 | ||
1. Сoздaть oбpабoтчик кнопки Шифровать 2. Дoбaвить пpoвеpки на исходныe данные. 3. Сoздaть вce стoлбцы. 4. Зaпoлнить вce стpочки. 5. Пpoвepить рaботу прогpаммы. --- --- |
|||
Шифрование Перестановочный шифр - Форма | + 1 | ||
1. Сoздaть лeвyю чаcть формы. 2. Пpoдyблиpовaть для правой чаcти. 3. Пepeимeновaть текстовые пoля, кнопки и сeтки. --- --- |
|||
Шифрование Перестановочный шифр | + 20 | ||
Узнал чем кодирование отличается от шифрования --- --- |
|||
Бинарная жизнь VIP урок. Игра Жизнь | + 21 | ||
Научился реализации игры "Жизнь" --- --- |
|||
Бинарная жизнь ФИНАЛЬНЫЙ УРОК | + 20 | ||
Курс помог понять, что для достижения целей необходимо "выйти из зоны комфорта" (как сейчас любят говорить) и в корне поменять жизненные устои и привычки. Материальные блага если и меняют жизнь в лучшую сторону, но только в краткосрочной перспективе. --- --- |
|||
Бинарная жизнь Смысл жизни | + 21 | ||
Научился: 1. Внимaтeльнo пoслyшать. 2. Пoэкcпepиментиpовать. 3. Нaйти и пpикpeпить сoответствующий мoтиватоp. --- --- |
|||
Бинарная жизнь Новое поколение | + 20 | ||
Научился: 1. Сoздaть мeтод SetRule (int nr). 2. Сoздaть мeтoд Next (). 3. Пoмecтить в цикл вызoв этих мeтодов. 4. Пoэкcпepиментиpовать с рaзличными прогpаммами. --- --- |
|||
Бинарная жизнь Конструктор организма | + 20 | ||
Научился: 1. Сoздaть нoвый кoнсoльный проект. 2. Избaвитьcя oт static. 3. Сoздaть клacс Logic и oписать его пoля. 4. Сoздaть кoнcтрyктор. 5. Рeaлизoвaть метoды SetRandom(), SetMiddleOne(). 6. Сдeлaть мeтoд отoбражения Life(). --- --- |
|||
Бинарная жизнь Правила игры | + 20 | ||
"Играть в жизнь" --- Люблю нагромождение формул в Excel :) По мне Excel - один из самых лучших инструментов автоматизации расчетов, причем возможна реализация довольно сложных программ, с условиями, циклами, подпрограммами. Я на работе целые проекты (электроснабжения) рассчитываю на одном листе экселя :) |
|||
НаноШахматы VIP. PHP - Рисуем буквы | + 20 | ||
Научился менять толщину линий при рисовании в PНР --- |
|||
НаноШахматы VIP. PAINT - Координаты отрезков | + 20 | ||
Грязным хакам =) --- ))) |
|||
НаноШахматы VIP. PHP - Создание картинки | + 20 | ||
Научился рисовать в PHP. --- Воспользовался тем, что мое отчество начинается на одну букву с именем, написал рисование букв в цикле =) |
|||
Entity Framework Добавление - Извлечение | + 20 | ||
Научился писать и читать БД программно. --- Все вроде понятно и просто. Но столкнулся с проблемой - не срабатывает user.Roles.First() - пишет что "последовательность не содержит элементов" Поставил брейкпоинт - и в правду, почему-то у юзера Roles.Count = 0, хотя в БД все добавилось нормально... Надеюсь, будет еще вебинар с Константином, чтобы можно было задать возникшие в процессе проработки вопросы... |
|||
Entity Framework Один за всех и Все за одного | + 20 | ||
Научился реализации связей один-к-одному, один-ко-многим, много-ко-многим с использованием Entity FW! --- Создание базы данных как Объектно-ориентированной Модели - это круто! Все логично и понятно! Кстати, у кого не установлена Managment Studio - в VS есть тот же SQL Server Object Explorer, искать в меню View. Да и даже если установлена - проще все равно прямо не выходя из VS открыть и посмотреть. |
|||
НаноШахматы ФИНАЛЬНЫЙ УРОК | + 20 | ||
Курс в целом прикольный, но, имхо, от такого фотокурса толку мало и для начинающих (а я таковым и являюсь) он скорее вреден чем полезен. Хотя, если призадуматься, кое-чему все-таки я научился: - Азы HTML - тут без наворотов; - Азы CSS - тут тоже минимум; - Азы PHP - тут уже посерьезнее, работа с циклами, массивами, функциями, пришлось даже по мелочи погуглить; - Азы JS - тут очень поверхностно и написанный код новичку не понятен, не понятны используемые сущности и их методы; - также, для абсолютного новичка в вебе, мне пришлось покопаться чтобы понять как запустить php-скрипт, не все очевидно, в какую папку положить файл, что должно быть запущено, по какому адресу запускать в браузере... --- Что можно сделать? Из "красоты" самое первостепенное - чтобы фигура хваталась за середину, а не за нижний правый угол. Далее, для начала, проверку правильности ходов Консоль для вывода ходов Часы ... |
|||
НаноШахматы JavaScript - Я тебя съем! | + 20 | ||
Научился реализации перетаскивания фигур со взятием. --- Детский мат, это слишком сложно! Даёшь "дурацкий мат" - в 2 хода!!! |
|||
НаноШахматы JavaScript - Завершение хода | + 20 | ||
Научился реализации Drag'n'Drop --- Как реализовать задание со звездочкой пока не знаю - JS не владею, но в принципе есть догадки, что надо использовать не appendChild, а replaceChild, либо после аппенда удалять предыдущего потомка. Ну да ладно, посмотрим как это реализовано в следующем уроке. |
|||
НаноШахматы JavaScript - Посадку давай! | + 20 | ||
Научился "разрешать посадку" --- --- |
|||
НаноШахматы JavaScript - Тронул? Коди! | + 20 | ||
Научился добавлять функции JS в HTML-код странички, научился добавлять вызов этой функции по событию. --- --- |
|||
НаноШахматы HTML5 - Поднятие фигур | + 20 | ||
Научился выдавать разрешение на захват объекта. --- --- |
|||
НаноШахматы PHP - Превращение букв | + 20 | ||
Научился писать функции и свитчи в PHP. --- Не понятно, зачем функция, в прошлом еще уроке сделал массивом. Хотя понятно - просто в учебных целях, ведь на самом деле такие функции состоящие из одного свитча никто не пишет, массив тут сам напрашивается... |
|||
НаноШахматы PHP - Массив для фигур | + 20 | ||
Научился пользоваться массивами PHP. Задание со звездочкой! |
|||
НаноШахматы PHP - Циклы для клеток | + 20 | ||
Научился азам PHP. --- --- |
|||
НаноШахматы HTML - Фигуры на Доске | + 20 | ||
Размещать фигуры на доске. --- --- |
|||
НаноШахматы CSS - Шахматная доска | + 20 | ||
Научился подключать CSS к HTML-файлу. --- Пришлось уменьшить размеры клеток доски, на ноутбуке в масштабе 100% не помещается на экран. |
|||
НаноШахматы HTML - Шахматные фигуры | + 20 | ||
Научился азам HTML. --- --- |
|||
Entity Framework Миграция Базы | + 20 | ||
Научился выполнять миграции БД. --- --- |
|||
Entity Framework Использование MySQL | + 20 | ||
Подключать БД MySQL к EF. --- --- |
|||
Entity Framework Основные приемы работы с БД через EF | + 20 | ||
Научился делать запросы к БД. --- --- |
|||
Entity Framework Подключение БД по методу CodeFirst | + 20 | ||
Научился пользоваться графическим интерфейсом пакетного менеджера NuGet. Научился добавлять в проект Entity Framework. Научился создавать контекст/модель. Научился создавать классы-строки таблиц. Научился добавлять таблицы в БД. Научился создавать инициализатор БД. --- --- |
|||
Entity Framework Создание приложения | + 20 | ||
Создавать форму для логина пользователей. --- --- |
|||
Entity Framework Введение в EF | + 21 | ||
Узнал о существовании Entity Framework, о его функционале и возможностях, а также о вариантах использования. --- --- |
|||
Хранитель экрана ФИНАЛЬНЫЙ урок | + 20 | ||
Записывать видеообзор приложения. Записывать видеообзор приложения. --- |
|||
Коллекция графов ФИНАЛЬНЫЙ УРОК | + 20 | ||
Курс в целом очень полезный. В первую очередь из-за знакомства со списками/коллекциями, на самом деле это такая нужная "обыденная" вещь, без которой ни один более-менее средний (про большие уж не говорю) не обходится, поэтому знать и уметь пользоваться нужно обязательно. Ну и как бонус курса - знакомство с графами и алгоритмами их обхода вширь и вглубь. --- Курс очень понравился, здесь не было чего-то особо запутанного и сложного для понимания. Единственное замечание - это автор немного "перемудрил" с алгоритмом добавления ребер на графе шахматной доски, но я реализовал свой алгоритм, поэтому для меня это не минус. |
|||
Коллекция графов Глубокий алгоритм | + 20 | ||
Научился реализации алгоритма поиска вглубь в коде, а также познакомился с очередной коллекцией - стеком (Stack). --- При закрашивании лейбла, достаточно рефрешить только его, а не целиком панель или форму, тогда не будет мерцания и отпадет необходимость в перерисовке ребер, да и работать будет всё немножко быстрее. Как показывал в своем отчете у меня свой алгоритм добавления ребер на шахматной доске, поэтому алгоритм перебирает чуть в другой последовательности. |
|||
Коллекция графов Глубокий поиск | + 20 | ||
Обходу графа по алгоритму поиска вглубь. --- --- |
|||
Коллекция графов Визуализация процесса | + 20 | ||
Научился использовать делегаты для выполнения определенных действий в вызывающем классе/объекте по сигналу из вызываемого класса/объекта. --- --- |
|||
Коллекция графов Широкий пошаговый ход | + 20 | ||
--- --- Задание под звездочкой пока выполнять не стал, есть идея сделать это, используя делегаты/события, но эту тему еще не изучал, поэтому самому не просто реализовать. Посмотрю реализацию в следующем уроке. |
|||
Коллекция графов Широкий алгоритм | + 20 | ||
Научился реализации алгоритма поиска вширь в коде. Разобраться с изменением коллекции при ее переборе. На сколько я понял, изменение коллекции при переборе не рекомендуется, в этом случае рекомендуют формировать новую коллекцию. Я примерно так и сделал, заодно и реализовал интерфейс ICloneable в нашем классе графа. Немного кривенько пока вышло, но, посмотрим, что предлагает нам следующий видеоурок. |
|||
Коллекция графов Широкий поиск | + 20 | ||
Научился обходить граф вручную. --- --- |
|||
Интернет-магазин Добавление товаров | + 20 | ||
Добавлять записи в таблицу и выводить таблицу на экран посредством SQL-запросов. --- --- |
|||
Интернет-магазин Запуск базы данных | + 20 | ||
Научился создавать базу данных и добавлять в нее таблицу. --- --- |
|||
Интернет-магазин Установка EasyPHP | + 20 | ||
Устанавливать и запускать EasyPHP with Devserver --- --- |
|||
Семантика Я решил всю Семантику! | + 20 | ||
По курсу в целом - натренировал навыки написания консольных приложений, освоил синтаксис языка. --- Курс пройден, все задачи решены на 100%, хотя, конечно, с некоторыми условиями/решениями/тестами я не совсем согласен. |
|||
Коллекция графов Шахматная доска | + 20 | ||
Научился разбираться в нагромождениях кода и приводить его в хоть сколько-то читаемый вид. --- Добавление ребер "шахматного" графа сделал по своему, в уроке код избыточный и неочевидный, имхо. Сделал двумя вложенными циклами, сначала проходим и добавляем горизонтальные связи, потом проходим и добавляем вертикальные связи. Обошелся вообще без условного оператора. Вообще, строго говоря, в шахматах нет ни одной фигуры, которая ходит по этому графу, например, если бы мы писали граф возможных ходов для ладьи, то, например, при положении фигуры в вершине 10 есть возможные ходы не только в 2, 9, 10 и 18, но и 26, 34, 42, 50 и т.д. |
|||
Коллекция графов Отображение | + 20 | ||
Научился перебору членов коллекции, которые являются членами коллекции. --- Добавил обработчик события для перерисовки ребер при необходимости. |
|||
Коллекция графов Инициация | + 20 | ||
Научился создавать элементы формы в процессе выполнения программы. --- Ну пока сильно не заморачивался с выводом - вывел все лейблы на окружности. Будем смотреть как реализовано в уроках. |
|||
Коллекция графов Рёбра | + 20 | ||
Научился создавать вложенные коллекции, их инициализировать и добавлять элементы на все уровни вложенности. Научился пользоваться созданным классом графа, добавлять в него вершины и ребра. Не утонуть в обилии скобочек. Считаю, что инициализировать список ребер нужно сразу при создании вершины. С моей точки зрения это более логично, я, собственно, так и сделал. |
|||
Коллекция графов Вершины | + 1 | ||
Пока в общем-то ничего нового, ждем добавки :) --- В текущей реализации пока не очень понятно как мы будем хранить ребра... Единственное что приходит в голову - это создать коллекцию ребер, которая будет по тому же индексу, что используется в коллекции "вершины" хранить в себе массив/коллекцию индексов вершин связанных с этой. %) |
|||
Коллекция графов Граф | + 20 | ||
Освежил в памяти начальные сведения из теории графов. --- Как вариант: List<List<int>> g = new List<List<int>>(); ну или даже массив массивов, например: int[][] g; F вообще, конечно, в каждой конкретной задаче нужно использовать реализацию которая подойдет конкретно к этой задаче: Например, если нам нужно хранить еще и цвет, то создаем структуру (ну или класс) "Вершина" с полями "Цвет" и "Список смежных вершин", затем создаем коллекцию этих "Вершин" |
|||
Коллекция графов BitArray | + 20 | ||
Познакомился с коллекцией BitArray. Независимо от размера коллекции, она использует 110 байт в служебных целях, поэтому если у нас до 110+4=114 элементов ее использование экономии памяти не дает, хотя тут другой вопрос - сколько накладных расходов при использовании обычного массива? --- Составил таблицу истинности ф-й And, Or, Xor. |
|||
Коллекция графов Hashtable | + 21 | ||
"Попробовал" Hashtable и HybridDictionary. --- Результаты тестов на скриншоте! |
|||
Коллекция графов ListDictionary | + 20 | ||
Познакомился с коллекцией "словарного" типа - ListDictionary, такие коллекции позволяют хранить совместно с элементами коллекции ключи, для доступа и поиска этих элементов, причем ключи эти тоже являются любыми наследниками object. --- Отдельно познакомился с методом Remove(), в отличие от коллекций-дженериков здесь идет поиск члена коллекции по его ключу, а не номеру. |
|||
Коллекция графов Array vs List | + 20 | ||
Научился использовать класс Stopwatch для проведения замеров времени. --- Провел эксперимент с указанием количества элементов массива и коллекции при создании, так вот типизированный List работает в этом случае примерно с такой же скоростью, что и обычный массив |
|||
Коллекция графов
List |
+ 20 | ||
Усвоил простейшие приемы работы с типизированной коллекцией List<>. --- Изучил метод Insert() - он позволяет вставить в коллекцию элемент в выбранную позицию. Опять же, при использовании массива нам пришлось бы вручную переместить часть элементов, коллекция же все делает сама в автоматическом режиме. |
|||
Коллекция графов ArrayList | + 20 | ||
Узнал о существовании ArrayList, BitArray и прочих реализациях коллекций. --- Поэкспериментировал с методом RemoveAt(int) - он позволяет удалить из коллекции элемент с заданным индексом. В этом как раз огромное отличие от обычного массива - в обычном массиве, чтобы удалить элемент из середины пришлось бы перемещать часть элементов вручную |
|||
Итератор ФИНАЛЬНЫЙ УРОК | + 21 | ||
По курсу в целом. Курс короткий (буквально на 3-4 часа со всеми перерывами на попить чайку), но на самом деле очень ценный (по крайней мере оказался для меня). Магия интерфейса IEnumerator/IEnemerable и ключевых слов foreach()/yield завораживает. Что называется - однозначно мастхэв. --- Приложил книгу, о которой говорил в первом уроке || V |
|||
Итератор Итератор. Один метод вместо классов. | + 20 | ||
Научился использовать возможности интерфейса перечисления без создания специального класса, наследующего этот интерфейс. --- Возможность, конечно, очень интересная, но смысла от нее я не вижу никакого, если мы уж пишем такой метод, то логично его выделить в отдельный полноценный класс, отвечающий всем канонам IEnumerator. В теле цикла foreach() метода Start() добавил строчку if (j > number) break; после вложенного цикла while(), т. к. если начальное число большое, а его делители маленькие, очень долго приходится ждать пока он там впустую прогонит цикл до конца, хотя множители все уже найдены... |
|||
Итератор Итератор. Список простых чисел. | + 21 | ||
Освежил в памяти работу с List<> (шутка, List не забыть, т. к. он очень часто используется) --- Теперь алгоритм очень прост для восприятия, чист и понятен. В конкретно нашем случае двойку можно было не сохранять в список, т. к. у нас потом идет перебор только по нечетным числам, которые заведомо на 2 не делятся, но мы с завидной упрямостью каждое все же пробуем разделить. Хотя, конечно, класс от этого перестанет быть универсальным, но ведь у нас все же нет публичного доступа к List<long> primes из вне и если нам потребуется список простых чисел еще раз, мы начнем генерировать его заново... %) |
|||
Итератор Итератор. Волшебное слово yield. | + 20 | ||
Узнал новое ключевое слово - yield. Вникнуть заново в алгоритм > Сфopyлиpовaть своими словaми, что такoе yield. yield используется для возвращения поочередно членов перечисления, при этом текущее состояние перечисления сохраняется. Для завершения итераций используется конструкция yield break. |
|||
Итератор Итератор. Зачем нужно два класса | + 20 | ||
Теперь понятна потребность в двух интерфейсах, все более-менее становится на свои места. --- --- |
|||
Итератор Итератор. Перебор простых чисел. | + 20 | ||
Гуглить список пятичначных простых чисел. --- --- |
|||
Итератор Итератор. Перебор чисел в итераторе. | + 20 | ||
Организовывать перечисление в методах IEnumerator. --- --- |
|||
Итератор Итератор. Создание пустого итератора. | + 20 | ||
Создавать класс, который наследует один или несколько интерфейсов --- > Нaпиcaть, чтo такoе итератoр свoими словами. Итератор - это такой интерфейс, который должен уметь отдавать последовательно члены "своей последовательности". Кстати, массив в .Net (класс Array) тоже наследник IEnumerable, поэтому он позволяет перебирать элементы в цикле foreach. |
|||
Итератор Итератор. Разложение числа на простые множители. | + 20 | ||
--- --- Когда я слышу что-то про простые числа - всегда вспоминаю замечательную книгу: Дербишир, Джон. Простая одержимость. Бернхард Риман и величайшая нерешённая проблема в математике. Всем интересующимся читать обязательно, книга читается не хуже чем хороший детектив + с драматической подоплекой. Многие думают (да и я думал), что простые числа, да и вообще теория чисел придумана математиками для себя лишь для развлечения, но на самом деле теорема о распределении простых чисел так широко используется и связана с такими областями физики, что вы будете ... в шоке. Подробнее в книге ;) |
|||
Новые технологии Модульное тестирование | + 20 | ||
Научился создавать проект для модульного тестирования. Писать простые юнит-тесты для своего класса и его методов. --- Что-то интересное и новое, хотя, я полагаю, написание юнит-тестов - довольно рутинная работа... |
|||
Бурные потоки ФИНАЛЬНЫЙ УРОК | + 22 | ||
По отношению к курсу в целом. Курс достаточно интересный, позволяет изучить азы работы с потоками: их созданию и прерыванию, заданию приоритетов и обработке запросов на прерывание. Пожалуй, особо сложного ничего не было лично для меня, единственное что смущает - это сам код змей, он достаточно запутан и вникнуть в него лучше особо не пытаться, задачу курса - усвоить азы работы с потоками - это решить не мешает. Ожидал от курса более глубокого рассмотрения работы с потоками, хотя, возможно, для кого-то и этот объем будет достаточно сложен для понимания. К сожалению, в это время года у меня традиционно очень мало времени, поэтому переписать код возможности сейчас нет, но он нуждается в большой работе, возможно даже в полном переписывании. Если запал к июлю-августу не пропадет и не появится другого "неотложного" увлечения или идеи, то попытаюсь переписать код этих змей. |
|||
Бурные потоки Смысл жизни | + 20 | ||
Научился использовать внешние прерывания потока с какой-то пользой, завершение потока наполнять смыслом, так сказать. --- --- |
|||
Бурные потоки Замри! | + 20 | ||
Научился обрабатывать запросы на прерывание процесса и (при необходимости) противодействовать им. --- --- |
|||
Бурные потоки Приоритет | + 20 | ||
Узнал о Monitor и о способе задания приоритета потока. --- При выводе легенды все же стоит использовать форматированный вывод, например: Console.Write("#{0,-2}\t{1,3}", Thread.CurrentThread.ManagedThreadId, body.Count); Самое главное здесь - выровнять длины змей по правому краю, т.к. если змея имеет длину 10, а потом уменьшается до 9, то этот нолик от десятки сам не исчезнет... |
|||
Бурные потоки Бурная жизнь | + 20 | ||
--- --- Очень сложный нетривиальный неочевидный алгоритм перемещения змей получается, но в принципе суть курса не в этом, а в изучении работы с потоками, поэтому не страшно. > Пpидyмaть cвою фишкy и реализовaть, написaть, что сделал. Добавил у змей поле для скорости speed, с помощью него у разных змей реализуется разная задержка в теле Run(): Thread.Sleep((10 - speed) * 25 + 50), где speed может быть от 0 до 9 |
|||
Бурные потоки Поток питонов | + 20 | ||
Научился запускать код в отдельном потоке и базовой работе с этим потоком. --- --- |
|||
Бурные потоки Поворот головы | + 20 | ||
--- --- Питон не отображался в самом начале из-за проблемы в методе ShowMe: PutScreen(cHead, color, aHead[(int)arrow]); PutScreen(cNone, color, aNone); т.е. он рисуется, а потом в том же самом месте затирается, если поменять строчки местами, то сразу все становится на свои места :) |
|||
Бурные потоки Питонатор | + 20 | ||
--- --- --- |
|||
Бурные потоки Зайчики | + 21 | ||
--- --- > какие не статичные поля нужны питону? Координаты тела и его длина, цвет, скорость и направление движения |
|||
Бурные потоки Террариум | + 20 | ||
--- --- --- |
|||
Бурные потоки Вступление | + 20 | ||
--- --- Вопрос: какие ещё статические поля нужно добавить в класс Питона? Ответ: Поле, массив для его представления. |
|||
Webbot On-Line Подготовка формы | + 20 | ||
Пока особо ничего нового. --- --- |
|||
Хранитель экрана Режим предобзора и установка | + 20 | ||
Научился с помощью вызовов функций WinAPI32 выводить свой скринсейвер в окне предпросмотра! --- --- |
|||
Хранитель экрана Полноэкранный режим | + 20 | ||
Научился выводить свою форму на весь экран и поверх всех окон. --- Редактирование кода создания PictureBox было излишне, конечно, достаточно просто отредактировать параметры формы и PB сам растянется на всю нее. |
|||
Хранитель экрана Параметры командной строки | + 20 | ||
Научился работе с параметрами командной строки --- --- |
|||
Хранитель экрана Использование реестра | + 20 | ||
Научился работе с реестром Windows --- Непонятно зачем автор хранит значения в виде строк, ведь это куча лишних шишек и конвертаций, есть ведь ключи реестра типа DWORD |
|||
Хранитель экрана Применение настроек | + 20 | ||
Передавать параметры из формы в форму --- У компонента Button (кнопка) есть свойство DialogResult, изменив которое в конструкторе можно уже не писать код на присваивание. У компонента TrackBar (движок с засечками) правильнее использовать событие ValueChanged все-таки, а не Scroll, т.к. оно должно охватывать изменение любым способом, например стрелками с клавиатуры, про Scroll я так не уверен... |
|||
Хранитель экрана Форма настроек | + 20 | ||
Создавать и открывать модальное окно. --- --- |
|||
Webbot On-Line Видеообзор Игры | + 20 | ||
Играть в "Небоскребы" --- --- |
|||
Хранитель экрана ПОЛУФИНАЛЬНЫЙ урок | + 1 | ||
Научился записывать видеообзор приложения. Набраться храбрости записать видео. --- |
|||
Хранитель экрана Новый класс Polygone | + 20 | ||
Более глубоко изучил работу с классами. Изучил работу со списками. Изучил передачу массива объектов в параметрах. --- --- |
|||
Хранитель экрана Новый класс Figure | + 20 | ||
Более детально изучил создание новых классов --- По поводу статических переменных внутри класса - ключевое слово this к ним не относится, но вместо него можно использовать имя класса, так в методе InitMinMax(Pixel min, Pixel max) можно написать: Figure.min = min; Figure.max = max; и все прекрасно работает |
|||
Хранитель экрана Новый класс Graph | + 20 | ||
Научился выносить сходный функционал в отдельный класс. --- Автор выбрал не тот конструктор за основной. Если выбрать за основной конструктор наиболее полный из них, то избежать повторного запуска кода легко. На скриншоте можно увидеть мое решение, как видно код инициализации повторно не выполняется. Еще как вариант (еще проще) - использование параметров по умолчанию, но конкретно в моем исполнении этот вариант не подошел, т.к. у меня по умолчанию в качестве фона используется "естественный" цвет формы Windows, а такой цвет не является константой и компилятор на него ругается. |
|||
Хранитель экрана Движение шарика | + 20 | ||
Подгонять ответ прибавлением и отниманием единицы. --- --- |
|||
Хранитель экрана Создаём графику | + 20 | ||
В общем все просто и понятно, ничего пока нового. --- Пункта рефакторинга кода в контекстном меню у меня нет, видимо это из-за более "свежей" версии VS2015. Как оказалось, вместо этого нужно использовать пункт QuickActions и он автоматически предлагает извлечь метод. |
|||
Демо игры Картинка с секретом | + 20 | ||
Ознакомился со средой VS; работе с окнами properties, toolbox, solution explorer; настройке свойств приложения через графический интерфейс VS, добавлению и привязке объектам событий; добавлению ресурсов в проект и работе с ними. --- --- |
|||
Демо софт Вступительное слово | + 21 | ||
Этот урок научил меня терпеливо смотреть видео и заставил скачать английский ленгпак к Visual Studio. --- Прикладываю скриншот одного из последних приложений - это логическая игра MAX8. Игровое поле 8х8 клеток, каждая клетка содержит случайное число из диапазона [-8;-1]+[1;8]. Игроки ходят по очереди, один из игроков может ходить только по горизонтали, другой - только по вертикали. Цель игры - набрать больше очков, чем соперник. Приложение написано в Delphi в 2011 году. После этого я забросил программирование (хотя в общем-то я и тогда был новичком в этом деле), сейчас возникло желание подтянуть и изучить один из современных ЯП (C#, Java или др.). Т.к. учился я давно, программирую в императивном стиле (вроде это так называется) и ООП мне дается не очень легко. От курса ожидаю подтянуть ООП и научиться мыслить объектно. Ну и в итоге написать несколько приложений для Windows и Windows Phone (10 Mobile), этому должно поспособствовать наличие у меня смартфона на WP и отсутствие на этой платформе некоторых необходимых лично мне приложений. |
|||
Нано-игры Арканоид - Уровень и ракетка | |||
|
|||
Повторение задач Stop. Think. Act. Review. | |||
|