Online обучение c#

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Статистика по видеоурокам

  • Всего просмотрено уроков: 69
  • Всего выполнено уроков: 68

Отчёты по видеоурокам

Дата Видеоурок Результат
2016-10-15 20:18 БД - Управление гостиницей Вступление + 20 25 мин.
Ничему конкретному.
Ничего.
---
2016-10-15 13:36 Судоку VIP. Модульное тестирование + 20 50 мин.
Работать с UnitTest-проектами в Visual Studio. Проводить базовое тестирование методов.
Ничего
Полезный урок, хорошо бы больше на подобную тему.
2016-10-12 13:54 Судоку ФИНАЛЬНЫЙ УРОК + 21 30 мин.
null
null
По поводу будущих курсов написал в прошлом отчёте.
2016-10-11 21:20 Судоку Генерация головоломок + 21 20 мин.
Генерировать судоку.
----
Исправленный отчёт: исправлена ошибка в функции поиска решения.
В ближ. время не уверен, что буду заниматься какими-либо курсами на данном сайте, ибо учёба в разгаре. Хотелось бы увидеть здесь курс про тестирование ПО.
2016-10-11 21:18 Судоку Сохранение ответа + 20 1 час. 00 мин.
Вспомнил работу C# с файлами.
Откорректировать свой алгоритм вывода для экспорта в файл.
Исправленный отчёт: исправлена ошибка в функции поиска решения.
--
2016-10-11 21:14 Судоку Рекурсивная функция поиска + 20 1 час. 30 мин.
Обновил понимание правил построения рекурсивных функций.
---
Исправленный отчёт: исправлена ошибка в функции поиска решения.
Первый скрин - уровень 30, второй скрин - уровень 20.
2016-10-10 16:43 Судоку Идея алгоритма - 81 цикл + 20 30 мин.
Порешал Судоку алгоритмом со сложностью O(n*n).
---
Не понятно почему нельзя воспользоваться готовыми эффективными решениями, например Dancing links. Результат тот же, работает быстрее. Текущий алгоритм близок по временной сложности к перебору.
2016-09-30 22:25 Судоку Загрузка головоломки с интернета + 20 40 мин.
Узнал о новом для себя способе парсить web-страницы.
Ничего
----
2016-09-30 15:34 Судоку Проверка правил игры + 20 1 час. 00 мин.
Написал свой алгоритм проверки повторяющихся значений в пределах квадрата.
Написать такой алгоритм самостоятельно.
---
2016-09-27 21:21 Судоку Печать цифр в таблице + 20 1 час. 30 мин.
Вспомнил делегаты. Написал свой алгоритм отрисовки элементов.
Написать свой алгоритм отрисовки элементов.
Делегат - объект-ссылка на метод (группу методов), позволяющая безопасно осуществлять обратный вызов нужного нам метода из зоны, где он нам не доступен.
Для этого мы связываем объект делегата с нужным методом в текущем классе, а саму ссылку (делегат) передаём за пределы класса, при этом не обязательно делать нужный нам метод public static-1 (вызов: {Класс нужного нам метода (КНМ)}.{Нужный нам метод(НМ)}), 2-вызывать от имени объекта КНМ (можно передать с помощью оператора this текущий объект КНМ в другой класс и уж от его контекста вызывать НМ).
2016-09-26 13:59 Судоку Сетка для цифр + 20 1 час. 00 мин.
Написал алгоритм вывода игровой сетки.
Придумать алгоритм вывода сетки общего вида (иной, нежели представлялся на уроке).
null
2016-09-22 23:08 Судоку Вступление + 20 20 мин.
Решать лёгкий уровень Судоку.
null
null
2015-12-01 23:56 Морской флот Финишная миля. Найти победителя + 20 2 час. 00 мин.
null
null
Немного изменил логику кое-где. Исправил ряд ошибок в серверном коде. В GUI вывел наглядно некоторые ошибки, интерфейс стал интуитивно понятным. Программа при неудачах (отсутствие связи с сервером, занятость сервера) сразу сообщает информацию, не виснет, позволяет сколько угодно раз пробовать снова начинать игру. Игровое поле не выводится при первом запуске.
2015-12-01 10:58 Морской флот Финишная миля. Мой океан. + 20 1 час. 30 мин.
Улучшил знания WIndows Forms.
null
null
2015-11-30 22:21 Морской флот Финишная миля. Перезагрузка. + 20 5 мин.
null
null
null
2015-11-30 22:09 Морской флот Одинокий капитан - Победа! + 20 1 час. 00 мин.
Осознал всю проблемность microtime() by PHP, получил опыт, когда проблемы программы имеют "железные корни". 
microtime( используется для счёта времени, берёт значения от Windows API. Она работает не стабильно на многоядерных энергоэффективных системах, где частота работы CPU постоянно меняется в зависимости от надобности.  https://support.microsoft.com/ru-ru/kb/895980
На серверах такой проблемы нет - частота CPU там постоянна.
microtime у меня выдаёт отрицательные значения, причём не редко, по этой причине текущую игровую ситуацию программа не смогла прогрузить - SQL-запрос не дел, он позволяет грузить только тогда, когда передаваемое значение времени меньше, чем то, что в БД. При первом запуске мы 0 посылаем, а если значения отрицательны, то ничего мы не получим в итоге.

Не знаю что с этим делать. У меня Windows 10, а проблема вроде как Windows Vista, XP и т.д.
Следует учесть проблемность microtime, не знаю как. Не у всех курсантов она может корректно работать.
2015-11-30 19:26 Морской флот Одинокий капитан - Выстрелы + 21 30 мин.
null
null
null
2015-11-30 18:10 Морской флот Одинокий капитан - Прицел + 20 30 мин.
null
null
null
2015-11-29 23:19 Морской флот Клиентский флот - Класс ServerGame + 20 2 час. 00 мин.
null
null
null
2015-11-29 16:30 Морской флот Клиентский флот - Класс ServerFire + 20 40 мин.
null
null
null
2015-11-29 13:20 Морской флот Клиентский флот - Класс ServerShip + 22 1 час. 00 мин.
Получил первый опыт передачи динамической части URL: GET-запроса с изменяемым количеством параметров.
null
null
2015-11-29 02:50 Морской флот Клиентский флот - Класс ServerInfo + 20 1 час. 00 мин.
Улучшил навыки рефакторинга. Узнал о функционале IDE Visual Studio для создания метода через выделение области кода.
null
null
2015-11-29 00:18 Морской флот Клиентский флот - Парсинг XML + 20 1 час. 20 мин.
Глубже понял XML. Научился парсить XML средствами C#.
Отыскать проблему в структуре XML. Очень важный момент: метод xmlDoc.LoadXml(xml) работать не будет, если у вас заголовок в XML-файле (<?xml version=\"1.0\"?>) начинается с пробела, со 2 строчки и т.д. Он должен находится в самом начале файла, иначе метод не сможет работать с таким XML-файлом. Что следует дописать в battle.php? Ф-ию ob_clean() перед echo $xml.
null
2015-11-28 11:52 Морской флот Клиентский флот - Подключение к серверу + 20 30 мин.
Узнал о том, как получить текстовые данные от сервера двумя методами.
null
null
2015-11-28 00:35 Морской флот ПОЛУФИНАЛЬНЫЙ УРОК. Большая игра + 20 1 час. 30 мин.
Понял, что недооценивал практику мини-тестов программы после внедрения небольших нововведений. Ошибки накапливаются, бороться с ними становится сложнее.
null
null
2015-11-27 22:14 Морской флот Серверный флот - Функция do_game + 20 30 мин.
null
null
null
2015-11-26 23:54 Морской флот Серверный флот - Функция do_fire + 20 1 час. 30 мин.
Улучшил знание SQL.
null
null
2015-11-26 19:27 Морской флот Серверный флот - Функция do_ship + 20 3 час. 00 мин.
Улучшил знание PHP.
null
null
2015-11-26 11:04 Морской флот Серверный флот - Капитан очевидность + 20 22 мин.
null
null
null
2015-11-22 16:52 Морской флот Серверный флот - Функция do_info + 20 30 мин.
null
null
null
2015-11-22 14:32 Морской флот Серверный флот - Рефакторинг РНР-кода + 20 25 мин.
Использовать функции в PHP.
null
null
2015-11-22 11:40 Морской флот Серверный флот - Как PHP дружит с MySQL + 20 1 час. 00 мин.
Познакомился с PHP.
Исправление незнакомой ошибки в незнакомом языке.
null
2015-11-22 01:26 Морской флот Серверный флот - FTP подключение + 20 15 мин.
null
null
Интересно: можно ли использовать HTTP Apache Server, а не FTP Server? По сути, разница на практике минимальная, пока.
2015-11-21 23:11 Морской флот Протокол - Команда GAME + 20 17 мин.
null
null
null
2015-11-21 12:22 Морской флот Протокол - Команда FIRE + 20 1 час. 30 мин.
Уверенно стал работать с SQL-запросами.
null
null
2015-11-20 19:09 Морской флот Протокол - Команды INFO и SHIP + 20 1 час. 30 мин.
Упрочил понимание SQL-языка и XML-языка.
null
null
2015-11-19 21:18 Морской флот Протокол - Список команд + 20 1 час. 00 мин.
Получил базовое понимание XML-языка
Есть вещи, которые должен прояснить следующий урок, задание дано заранее.
null
2015-11-19 19:55 Морской флот База Морского Флота - Запросы SQL + 20 1 час. 10 мин.
Изучил некоторые запросы на языке SQL
null
null
2015-11-19 13:41 Морской флот База Морского флота - Экспресс SQL + 20 1 час. 00 мин.
Овладел основными элементами языка mySQL
null
null
2015-11-19 10:11 Морской флот База Морского Флота - phpMyAdmin + 20 30 мин.
Получил первый опыт с MySQL.
Создание своего сервера заняло несколько часов, никогда не работал с Apache.
null
2015-11-17 10:39 Морской флот База Морского Флота - GAME + 20 30 мин.
Получил понятие о том, как следует планировать разработку проекта, точнее его Back-End составляющую. 
null
null
2015-11-11 09:41 Морской флот База Морского Флота - SHIP + 20 20 мин.
null
null
null
2015-11-10 22:53 Морской флот База Морского Флота - INFO + 20 30 мин.
null
null
null
2015-11-10 12:14 Морской флот Архитектура - Мышкой по кораблям + 20 2 час. 00 мин.
Закрепил тему делегатов
null
null
2015-11-09 22:45 Морской флот Архитектура - Фабрика картинок + 21 2 час. 00 мин.
null
По уроку ничего. Но пришлось долго искать ошибку в работе генератора случ. чисел: если объект генератора (Random rand=new Random()) используется подряд несколькими др. объектами, то результаты его работы сохраняются для след. таких объектов, не форматируются. К чему это приводит? Поработал генератор с одним объектом (exampleobject[0].rand.Next(0,10)) - дал ему значение 6 (прошло логическую валидацию), стал работать с другим (exampleobject[1].rand.Next(0,10)) - сразу дал ему 6 (в rand сохранилось), так будет и для след. других, что плохо. Надо переинициализировать rand перед использованием для каждого объекта.
null
2015-11-08 17:09 Морской флот Архитектура - Наследие картинок + 20 1 час. 00 мин.
Упрочил знания Windows Forms
null
null
2015-11-07 08:51 Морской флот Архитектура - Карта Пиратов + 20 1 час. 00 мин.
Увереннее стал использовать такие поля одного класса, которые являются объектами др. класса.
null
null
2015-10-25 15:49 Морской флот Архитектура - Перезагрузка проекта + 20 30 мин.
Осознал важность глубокой переработки проекта
ничего
null
2015-10-24 20:34 Морской флот Анимация - Полёт по таймеру + 20 1 час. 00 мин.
null
null
null
2015-10-24 17:14 Морской флот Анимация - Отображение кадров + 20 1 час. 30 мин.
Разобрался глубже в том, что автогенерирует IDE
ничего
null
2015-10-23 21:50 Морской флот Анимация - Полёт снаряда + 20 45 мин.
Генерировать подобные картинки с незначительными изменениями для создания иллюзии движения
ничего
null
2015-10-22 21:42 Морской флот Графика - Рефакторинг + 20 1 час. 30 мин.
Получил немного опыта рефракторинга
ничего
null
2015-10-19 22:09 Морской флот Графика - Выстрелы по Кораблям + 20 1 час. 30 мин.
null
Ничего
null
2015-08-24 21:09 Сокобан Сокобан - Игра - Управление + 20 3 час. 00 мин.
Использовать делегаты
null
null
2015-08-22 17:42 Сокобан Сокобан - Игра - Интерфейс + 20 2 час. 00 мин.
Исправлять проблемы отображения на форме, когда один элемент замещает другой
null
null
2015-08-21 18:04 Сокобан Сокобан - Создаём свои уровни + 20 1 час. 30 мин.
null
null
null
2015-08-19 21:43 Сокобан Сокобан - Редактор - Улучшение + 20 2 час. 00 мин.
null
null
null
2015-08-18 12:10 Сокобан Сокобан - Редактор - Сохранение + 1 3 час. 00 мин.
Сохранять результаты работы программы (изменения, новую информацию) в файл
Ничего
null
2015-08-15 21:37 Сокобан Сокобан - Редактор - Редактирование + 10 1 час. 20 мин.
Динамично управлять панелью объектов
Ничего
null
2015-08-15 11:36 Сокобан Сокобан - Редактор - Интерфейс + 1 1 час. 00 мин.
Динамически загружать нужные текстуры исходя из того, что требуется (задано во внешнем файле).
Побороть привычку
"Реализовать метод SokobanEditor_Resize для динамического изменения размера картинок." Можно в скобках написать (не обязательно), ибо на уроке так сказал Евгений.
2015-08-13 08:35 Сокобан Сокобан - Редактор - Загрузка + 1 2 час. 00 мин.
null
Ничего.
Программа плохо не верно распознавала уровни. Предполагаю, что дело было в путанице с индексами. Пример:

for (int y=0; y< height; y++)
                        {
                        for (int x=0; x< width; x++)
                            {
                           
                            cell[x,y] = CharToCell(lines[curr + y + 1][x]);
Здесь не видно прямой ошибки, однако можно запутаться, всё задом наперёд получилось. По определению, в матрице всегда первый индекс - строка, второй - столбец, при этом привычно, что x -строка, y-столбец. Когда не привычно, с кодом нельзя работать спокойно, напрягаешься постоянно, можно ошибку не заметить. Я переписал так:

cell=new Cell[width, height];
for (int x=0; x< width; x++)
                        {
                        for (int y=0; y< height; y++)
                            {
                           
                            cell[x,y] = CharToCell(lines[curr + x + 1][y]);

Заработало как надо. Может я какими-то своими правками что-то испортил, главное, что теперь всё нормально, я пишу затем, что может действительно Евгений Витольдович немного запутался и проблема не выдумана.
2015-08-10 22:49 Морской флот Графика - Карта Морского флота + 10 50 мин.
Узнал подробности о свойствах локализации формы (имеет 2 режима: конкретный язык и default)
Ничего
null
2015-08-09 01:27 Сокобан Сокобан - Подготовка - Картинки и лабиринт + 1 2 час. 47 мин.
Ничему конкретному.
Ничего.
null
2015-08-08 19:25 Сокобан Сокобан - Вступление + 10 3 час. 00 мин.
Узнал об интересной игре для интеллектуальной разминки, буду поигрывать.
Ничего не решаемого, только вопрос времени.
null
2015-08-06 19:35 Морской флот Интерфейс - А на море корабли + 2 1 час. 00 мин.
Подробнее освоил работу с текстурами.
Ничего
bmpSea = new Bitmap(Properties.Resources.sea_mod7); //[!!!] Нельзя заменить на Properties.Resources.sea_mod5, тогда возникнут проблемы с определением IDE правильных размеров текстурок.

У меня так случилось, мои текстурки стали вылазить за свои размеры (зум), поэтому инициализацию без ключ. слова new лучше не использовать, работает не стабильно.
       
2015-08-05 23:34 Морской флот Интерфейс - Первый кораблик   30 мин.
Подробнее познаю WindowsForms.
Empty
Empty
2015-08-04 22:50 Морской флот Вступление + 1 2 час. 00 мин.
Вспомнил некоторый функционал Photoshop.
Ничего.
Сделал несколько вариантов текстурок. На скриншоте вероятный набор.
  Нано-игры Арканоид - Уровень и ракетка   Открыто


Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Написал алгоритм вывода игровой сетки.
Трудности: Придумать алгоритм вывода сетки общего вида (иной, нежели представлялся на уроке).
null


Научился: Порешал Судоку алгоритмом со сложностью O(n*n).
Не понятно почему нельзя воспользоваться готовыми эффективными решениями, например Dancing links. Результат тот же, работает быстрее. Текущий алгоритм близок по временной сложности к перебору.