Дата | Видеоурок | Результат | |
---|---|---|---|
ASP.NET и GMaps Подключение Entity Framework | + 10 | ||
Создавать модель типа ADO.NET EDM. Ничто. |
|||
ASP.NET и GMaps Запуск ASP.NET MVC | + 9 | ||
Создавать контроллеры и представления. Ничто. |
|||
ASP.NET и GMaps Презентация | + 8 | ||
Ничему новому. Ничто. |
|||
Боты Сапёра ИГРА - Матрица картинок | + 9 | ||
Ничему новому. Для автоматического ресайзинга можно использовать событие формы ResizeEnd. Ничто. |
|||
Боты Сапёра ИГРА - Классные мины | + 8 | ||
Ничему новому. Ничто. |
|||
Боты Сапёра ИГРА - Минная картотека | + 7 | ||
Ничему новому. Ничто. |
|||
Сокобан Сокобан - Завершение | + 11 | ||
Ничему новому. Можно было бы и одним конструктором обойтись: public LabirintForm(int mode) { this.mode = mode; myUser = 1; otherUser = 2; Init(); } Ничто. |
|||
Сокобан Сокобан - Игра - На двоих по сети | + 9 | ||
Ничему новому. Чтобы сделать кнопку "Начать игру" неактивной (см. первый скриншот), нужно свойству TabIndex радиокнопки "Сервер" присвоить значение 0, и так по порядку. Простите, но то, как решался в видеоуроке вопрос "синхронизации данных" - это откровенный костыль. В классе Phone все установленные соединения и открытые потоки нужно корректно завершать и закрывать. Оставлять это без внимания - плохая практика в программировании. Причина несогласованного перехода на следующий уровень заключается ни в каких-то там тайм-аутах (делегат Recv((byte)data) в классе Phone вызывается синхронно (по умолчанию в контексте текущего потока вызывается метод Invoke класса Recv (компилятор по вашему описанию делегата создаёт аж целый класс-делегат!)), и пока он не выполнится, дальнейшее чтение данных невозможно, но никаких ограничений на время его выполнения нет и не было!), а вот в чём: Если вы запустили отдельный поток, то вы не сможете из этого потока обращаться к элементам формы напрямую, так как вам будет выдаваться ошибка. Мол, вы обращаетесь к элементам, которые были созданы в другом потоке. Уберите try-catch - и вы убедитесь в правоте моих слов. Эта ситуация поправима, и мы сейчас рассмотрим решение (см. второй скриншот). В целом же курс не плохой. Мне понравился. Спасибо вам, Евгений Витольдович, за ваш труд! Ничто. |
|||
Сокобан Сокобан - Телефон - TCP/IP протокол | + 6 | ||
Ничему новому. Ничто. |
|||
Сокобан Сокобан - Игра - На двоих | + 8 | ||
Ничему новому. Ничто. |
|||
Сокобан Сокобан - Редактор - На двоих | + 8 | ||
Ничему новому. В видеоуроке добавили кнопочку второго игрока, изменили её имя, а всплывающую подсказку не изменили. Ничто. |
|||
Сокобан Сокобан - Игра - Автоходы | + 10 | ||
Ничему новому. Отличный урок. Спасибо. Ничто. |
|||
Сокобан Сокобан - Решалка - Оптимизация | + 12 | ||
Оптимизировать данный алгоритм. Урок интересный. Спасибо. Ничто. |
|||
Сокобан Сокобан - Решалка - Яблоко | + 11 | ||
Ничему новому не научился. Но этот урок ещё интереснее предыдущего. Спасибо автору за его труд. Сложностей не было. |
|||
Сокобан Сокобан - Решалка - Мышка | + 9 | ||
Ничему новому не научился. Но этот урок понравился больше предыдущих уроков из этого курса. Спасибо его создателю. Сложностей не было. |
|||
Сокобан Сокобан - Решалка - Тестер | + 9 | ||
Писать тестер. Урок понравился. Спасибо его автору. Ничто. |
|||
Сокобан Сокобан - Игра - Управление | + 9 | ||
Ничему новому. Но урок снова понравился. Спасибо его автору. Ничто. |
|||
Сокобан Сокобан - Игра - Интерфейс | + 11 | ||
Ничему новому не научился, но урок понравился. Спасибо. Ничто. |
|||
Сокобан Сокобан - Создаём свои уровни | + 8 | ||
Создавать свои собственные уровни игры Sokoban. Найти на это время. |
|||
Сокобан Сокобан - Редактор - Классика уровней | + 8 | ||
Создавать классические уровни игры Sokoban. Ничто. |
|||
Сокобан Сокобан - Редактор - Улучшение | + 8 | ||
Ничему новому. Можно переходить на любой уровень, просто вводя в поле "Уровень" его номер и нажимая <Enter>. А также отменять и повторять любое количество изменений, вводя их число и нажимая соответствующую кнопку. Отмену и повтор изменений реализовал с применением паттерна "Команда". Ничто. |
|||
Сокобан Сокобан - Редактор - Сохранение | + 9 | ||
Создавать функционал для сохранения уровня. Не нравится код редактора. Чем дальше, тем всё неудобнее его писать. Может быть, удобнее создать отдельный обобщённый класс для работы с массивом. В нём - индексатор, в котором контролировался бы выход за границы массива, метод изменения размера массива и т. д.?! Немного изменил код (см. первый скриншот, panel.Controls.Clear() в начале метода InitPictures). В коде была ошибка: for (int p = newLength - 1; p > curr; p--) в методе SaveLevel класса LevelFile. Надо так: int len = curr + deltaRow; for (int p = newLength - 1; p > len; p--). Иначе, при записи первого уровня с 2 и более новыми строками возникнет ошибка выхода за границу массива lines. Спасибо за интересный урок! Ничто. |
|||
Сокобан Сокобан - Редактор - Редактирование | + 6 | ||
Создавать функционал для редактирования уровня. Ничто. |
|||
Сокобан Сокобан - Редактор - Интерфейс | + 4 | ||
Ничему новому. Подписываться на событие можно не только так: picture.MouseClick += new MouseEventHandler(pictureBox_MouseClick); // полная форма Но и так: picture.MouseClick += pictureBox_MouseClick; // сокращённая форма В этом случае используется техника предположения делегата (её ещё называют групповым преобразованием метода). Заметка к 3 уроку: out и ref - это модификаторы (квалификаторы, спецификаторы) параметров методов, указывающие, что аргументы передаются не по значению, а по ссылке. Ничто. |
|||
Сокобан Сокобан - Редактор - Загрузка | + 5 | ||
Загружать уровни из файла :-). Извиняюсь, что поместилась не вся матрица cell. Поймите, экран маленький, и не хочется ради одного отчёта менять кучу настроек, в том числе, и в VS. Тем более, что уроки по созданию редактора уровней простенькие, и не хочется здесь задерживаться надолго, а хочется уже посмотреть программирование логики игры, что, согласитесь, гораздо интереснее. И ещё, я убрал в "switch" методов CharToCell и CellToChar первую ветку (ведь, в "default" и так возвращается Cell.none и ' ' соответственно). Решить: менять кучу настроек ради одного отчёта, или нет (см. комментарий). |
|||
Сокобан Сокобан - Подготовка - Картинки и лабиринт | + 5 | ||
Подготовил картинки и лабиринт. Ничто. |
|||
Итератор Итератор. Список простых чисел. | + 7 | ||
Пока ничему новому. Ничто. |
|||
Итератор Итератор. Волшебное слово yield. | + 7 | ||
Пока ничему новому. "yield" - это, по сути, и есть итератор (точнее, ссылка на него (см. второй скриншот, строку "return (IEnumerator) ienumerableGetEnumeratorD3;" функции "GetEnumerator")). Ничто. |
|||
Итератор Итератор. Зачем нужно два класса | + 10 | ||
Пока ничему новому. Ничто. |
|||
Итератор Итератор. Перебор простых чисел. | + 10 | ||
Пока ничему. Ничто. |
|||
Итератор Итератор. Перебор чисел в итераторе. | + 8 | ||
Пока ничему. Ничто. |
|||
Итератор Итератор. Создание пустого итератора. | + 8 | ||
Пока ничему новому. Итератор - это то, что позволяет нам последовательно перебрать элементы какого-то набора. Ничто. |
|||
Итератор Итератор. Разложение числа на простые множители. | + 7 | ||
Пока ничему новому. Ничто. |
|||
Сокобан Сокобан - Вступление | + 6 | ||
Играть в Sokoban. Были незначительные сложности с управлением: иногда кладовщик толкал ящик слишком сильно. |
|||
Повторение задач Stop. Think. Act. Review. | + 16 | ||
Ничему. Если вы, Евгений Витольдович, позволите, то мне хотелось бы решить эти задачи не только на C++, но и на других языках. С уважением, Дмитрий. |
|||
Шахматы по сети План Шахматного проекта | + 18 | ||
Узнал о новом интересном курсе. Опыт работы с: 1. C# - 1 год; 2. Unity, ASP.NET, MS-SQL, Entity Framework - около 6 месяцев. В шахматы играю уже 17 лет. Ничто. |
|||
Нано-игры Арканоид - Уровень и ракетка | + 19 | ||
Ничему новому. Но урок интересный. Спасибо. Ничто. |
|||
Боты Сапёра ИГРА - Счастливый сапёр | + 19 | ||
Создавать блок-схему проекта. Извините, в предыдущем отчёте ошибся в операторе цикла с предусловием (вместо "НЕ КОНЕЦ?" написал "КОНЕЦ?"). Ничто. |
|||
Демо софт Текстовый процессор | + 17 | ||
Ничему. Ничто. |
|||
Демо софт Менеджер паролей | + 16 | ||
Ничему новому. Но за урок спасибо: "Повторение - мать учения". Ничто. |
|||
Демо софт Английские карточки | + 17 | ||
Работать с компонентом "Windows Media Player". Спасибо за интересный урок. Ничто. |
|||
Web API Создание Web API проекта | + 18 | ||
Создавать Web API. Спасибо за интересный урок. Ничто. |
|||
Простой WPF WPF. Простая змейка. VIP урок. Длина тела. | + 18 | ||
Научился простым и правильным способом (который меня лично очень впечатлил, так как редко встречаешь что-то подобное) удлинять змейку. Спасибо за превосходный урок. Сложностей не возникло. |
|||
Простой WPF WPF. Простая змейка. Победа и поражение. | + 18 | ||
Ничему. Но урок получился интересный. Спасибо. Я бы добавил панель с очками; увеличение скорости движения змейки после сбора еды; уровни, различной сложности; возможность начать каждый уровень заново (в случае проигрыша); настройку игры. Может быть, позже всё это реализую. Ничто. |
|||
Простой WPF WPF. Простая змейка. Управление движением. | + 18 | ||
Ничему. Но урок понравился. Спасибо. Ничто. |
|||
Простой WPF WPF. Простая змейка. Таймер для еды. | + 18 | ||
Научился добавлять таймер в WPF. Спасибо за интересный урок. Ничто. |
|||
Простой WPF WPF. Простая змейка. Эллипс на канвасе | + 18 | ||
Научился создавать графические объекты технологией WPF. Спасибо за интересный урок. Ничто. |
|||
Простой WPF WPF. Конвертер валюты. Ньютон против Паскаля. | + 17 | ||
Десериализировать JSON в класс. Позже добавлю возможность конвертации в другие валюты и элемент "ComboBox". Ничто. |
|||
Простой WPF WPF. Конвертер валюты. Курс валют в JSON. | + 17 | ||
Научился работать с JSON. Ничто. |
|||
Простой WPF WPF. Конвертер валюты. Класс конвертации. | + 16 | ||
Ничему новому, но урок всё равно интересный. Ничто. |
|||
Простой WPF WPF. Конвертер валюты. Макет программы | + 18 | ||
Создавать макет программы, применяя технологию WPF. Спасибо за интересный урок. Ничто. |
|||
Демо игры Камень ножницы бумага | + 18 | ||
Ничему новому. Но урок интересный. Получил от него большое удовольствие. Ничто. |
|||
Демо игры Бот для Быстрощёлка | + 16 | ||
Научился работать с элементом "TrackBar", создавать ботов. Прикоснулся к системному программированию (работа с мышью), которое меня лично очень интересует. Спасибо, Евгений Витольдович, за великолепнейший урок. Побольше бы таких уроков. Ничто. |
|||
Демо игры Игра Быстрощёлк | + 16 | ||
Переводить тики в секунды. В методе "stopGame" изменил формат вывода числа с "#.#" на "0.00": labelResult.Text = clicksPerSecond.ToString("0.00") + " кликов\n\rза секунду"; , т. к. при записи "#.#" число 0,5 отображается вот так: ,5. Не удалось побить рекорд Евгения Витольдовича по быстрощёлканью. |
|||
Демо игры Лабиринт 2D - игра | + 16 | ||
Хочу кое-что объяснить. Я пришёл на этот сайт уже со стандартным набором знаний по C# в надежде дополнить его до профессионального. Поэтому я в большинстве случаев и пишу в отчётах, что ничего нового на уроке не узнал. Вы уж не обижайтесь и не считайте меня каким-то "Знайкой-Зазнайкой" :-). Я пришёл сюда, как и многие, учиться, делиться знаниями и опытом программирования на C# (и не только на нём), набираться ещё большего опыта. Тем более, что его-то мне катастрофически не хватает. Несмотря на вышесказанное, урок был очень интересным. При тестировании 2-го уровня у меня были случаи, когда после прохождения 1-го уровня курсор мышки на доли секунды оставался на поле "Финиш" 2-го уровня и я попадал сразу на 3-ий. Эту проблему я решил, добавив в метод-обработчик события "labelFinish_MouseEnter" условие: "Если дверь открыта, тогда завершить уровень": private void labelFinish_MouseEnter(object sender, EventArgs e) { if (! labelDoor.Visible) FinishGame(); } . Интересно получается: вроде поле "Финиш" закрыто дверью, и на него не попадёшь, пока ключ не возьмёшь, но в действительности это не так. И я думаю, что Евгений Витольдович специально оставил этот баг, так сказать, на "засыпку". Ещё я столкнулся с тем, что при запуске по центру родительского контейнера у меня, в отличие от Евгения Витольдовича, 2-я, 3-я и 4-я формы налезали на заголовок окна 1-й. Поэтому я не стал убирать у них рамку, а оформил их так же, как 1-ую. Но столкнулся со следующей проблемой: на первых порах (пока не прописано, что за боковые стены заходить нельзя) при сворачивании последующей формы видна предыдущая. Посоветуйте, пожалуйста, как решить эту проблему. Сейчас, благодаря появлению модального окна при заходе на боковые стены, свернуть основное окно невозможно. Но всё-таки хочется запускать все формы в одном окне и сохранить при этом возможность сворачивать окно. Заранее благодарен всем откликнувшимся. Разместить 2-ую и последующие формы в нужном месте. |
|||
Демо игры Лабиринт 2D - меню | + 17 | ||
Работать с классом SoundPlayer. Спасибо за интересный урок. Воспроизвести wav-файлы (System.InvalidOperationException: "Звуковой API поддерживает воспроизведение только волновых файлов PCM"). Устранил проблему конвертацией wav в wav с кодеком PCM. |
|||
Демо игры Картинка с секретом | + 17 | ||
Урок замечательный, но я ,к сожалению, ничего нового не узнал. Ничто. |
|||
Демо софт Двенадцать месяцев | + 18 | ||
Работать с календарём. Чтобы программа корректно закрывалась после появления сообщения об ошибке, необходимо создать обработчик события загрузки формы, сделав по ней двойной клик мышью, и вызвать метод "Show_MonthPicture" непосредственно из него: private void FormTwelveMonths_Load(object sender, EventArgs e) { Show_MonthPicture(); } . В "catch" же использовать метод "Close": catch { MessageBox.Show("Файлы с картинками не найдены!", "Ошибка"); this.Close(); } . Ничто. |
|||
Демо игры C# чего начать программировать | + 17 | ||
Хочу стать .Net Developer. |
|||
Демо софт Вступительное слово | + 17 | ||
Познакомился с сайтом. Visual Studio использую уже 3 года. Месяц назад установил себе Visual Studio 2017 (русская версия). Программированием занимаюсь 14 лет. Сейчас перехожу с C++ на C#. Недавно написал на нём "Пятнашки". Мне очень нравятся ваши, Евгений Витольдович, видеоуроки. Я представляю сколько труда было в них вложено. Спасибо вам за это. Что я жду от этих уроков? Наверное, возможность узнать о программировании больше. Отправить отчёт :-) (произошёл автоматический выход из аккаунта). |
|||
Шарики Шарики. Вступление | |||
|
|||
Демо игры ФИНАЛЬНЫЙ УРОК | |||
|
|||
Демо софт Квадратный калейдоскоп | |||
|
|||
БД - Книжка оценок Проектирование БД «Книжка оценок» | |||
|
|||
Микроигры Игра 15 - Кнопки | |||
|
|||
Сокобан ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан | |||
|
|||
Хранитель экрана Создаём графику | |||
|
|||
БД - Управление гостиницей Вступление | |||
|
|||
Новые технологии Модульное тестирование | |||
|
|||
Базовый ASP.ект Мы начинаем ASP.NET с MVC | |||
|
|||
Бинарная жизнь Правила игры | |||
|
|||
Фотошарп 256 оттенков серого | |||
|
|||
Итератор Итератор. Один метод вместо классов. | |||
|
|||
Entity Framework Введение в EF | |||
|
|||
Мат Конём и Слоном Постановка задачи | |||
|
|||
Боты Сапёра ИГРА - Карта минного поля | |||
|
|||
ASP.NET и GMaps Золотой ключик api | |||
|
|||
Футбольная база Структура турнирной таблицы | |||
|
|||
Начало здесь День №1. Создание микро-Привычки. | |||
|
|||
Дневник успеха Рефлексия уходящего года | |||
|
|||
Записи вебинаров GIT-практикум | |||
|
|||
Повторение задач 10% Процесс пошёл! | |||
|
|||
marafon Новогодний Марафон - Вариант участия | |||
|
|||
Платформер на Unity 1. Вступление | |||
|