# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы начинаем серию видеоуроков по созданию алгоритма решения головоломки Судоку. Ваша задача - разобраться с правилами этой игры. найти/распечатать бумажное (!) Судоку. Решить его ручкой или карандашом. Сфоткать решение и приложить к отчёту. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 20 мин. [Показать отчёт] Научился: Решать лёгкий уровень Судоку. Сложности: null Комментарии: null |
|||||
2 | Сетка для цифр |
1 тест |
|||
На этом уроке мы создадим класс Sudoku, опишем в нём две константы и создадим функцию для отображения сетки для цифр. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Написал алгоритм вывода игровой сетки. Сложности: Придумать алгоритм вывода сетки общего вида (иной, нежели представлялся на уроке). Комментарии: null |
|||||
3 | Печать цифр в таблице |
|
|||
На этом уроке мы добавим метод для добавления цифр в наш Судоку. Также напишем функцию для отображения цифр в консольном экране. И свяжем их через использование делегата. В конце урока заполним наше поле случайнмыи цифрами. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Вспомнил делегаты. Написал свой алгоритм отрисовки элементов. Сложности: Написать свой алгоритм отрисовки элементов. Комментарии: Делегат - объект-ссылка на метод (группу методов), позволяющая безопасно осуществлять обратный вызов нужного нам метода из зоны, где он нам не доступен. Для этого мы связываем объект делегата с нужным методом в текущем классе, а саму ссылку (делегат) передаём за пределы класса, при этом не обязательно делать нужный нам метод public static-1 (вызов: {Класс нужного нам метода (КНМ)}.{Нужный нам метод(НМ)}), 2-вызывать от имени объекта КНМ (можно передать с помощью оператора this текущий объект КНМ в другой класс и уж от его контекста вызывать НМ). |
|||||
4 | Проверка правил игры |
1 тест |
|||
На этом уроке мы наконец-таки начнём писать алгоритм. В метод PlaceDigit() мы запрограммируем проверку правил игры. Числа должны быть из верного диапозона, они не должны повторяться в строчке, в столбце и в квадрате. Под занавес мы сгенирируем случайную матрицу по всем правилам судоку. Не факт, что её можно будет решить, и что решение будет единственным. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Написал свой алгоритм проверки повторяющихся значений в пределах квадрата. Сложности: Написать такой алгоритм самостоятельно. Комментарии: --- |
|||||
5 | Загрузка головоломки с интернета |
1 тест |
|||
На этом уроке мы напишем функцию для загрузки Судоку с интернет-сайта. Через буфер обмена содержимое страницы будет размещено в текстовом файле. Алгоритм будет его анализировать и добавлять в матрицу класса Sudoku. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 40 мин. [Показать отчёт] Научился: Узнал о новом для себя способе парсить web-страницы. Сложности: Ничего Комментарии: ---- |
|||||
6 | Идея алгоритма - 81 цикл |
|
|||
На этом уроке мы вручную проработаем алгоритм поиска в глубь с возвращением. Твоя задача - не аналитически решить судоку, а программно, применяя описанный на уроке алгоритм. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 30 мин. [Показать отчёт] Научился: Порешал Судоку алгоритмом со сложностью O(n*n). Сложности: --- Комментарии: Не понятно почему нельзя воспользоваться готовыми эффективными решениями, например Dancing links. Результат тот же, работает быстрее. Текущий алгоритм близок по временной сложности к перебору. |
|||||
7 | Рекурсивная функция поиска |
1 тест |
|||
На этом уроке мы напишем рекурсивную функцию NextDigit(), которая и будет заниматься поиском решения головоломки. Способы оптимизации алгоритма поиска решения: https://habrahabr.ru/post/173795/ Отчёт отправил: 6632. Волнухин Владимир Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Обновил понимание правил построения рекурсивных функций. Сложности: --- Комментарии: Исправленный отчёт: исправлена ошибка в функции поиска решения. Первый скрин - уровень 30, второй скрин - уровень 20. |
|||||
8 | Сохранение ответа |
1 тест |
|||
На этом уроке мы напишем функцию для сохранения решения головоломки в текстовый файл.
Отчёт отправил: 6632. Волнухин Владимир Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Вспомнил работу C# с файлами. Сложности: Откорректировать свой алгоритм вывода для экспорта в файл. Комментарии: Исправленный отчёт: исправлена ошибка в функции поиска решения. -- |
|||||
9 | Генерация головоломок |
|
|||
На этом уроке мы напишем алгоритм для формирования Судоку-головоломок, поэкспериментируем с генератором случайных полей. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 20 мин. [Показать отчёт] Научился: Генерировать судоку. Сложности: ---- Комментарии: Исправленный отчёт: исправлена ошибка в функции поиска решения. В ближ. время не уверен, что буду заниматься какими-либо курсами на данном сайте, ибо учёба в разгаре. Хотелось бы увидеть здесь курс про тестирование ПО. |
|||||
10 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с завершением этого видеокурса! Запиши и опубликуй видеообзор созданной программы. Напиши, какой курс будешь проходить следующим. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 30 мин. [Показать отчёт] Научился: null Сложности: null Комментарии: По поводу будущих курсов написал в прошлом отчёте. Видеообзор: https://youtu.be/8sIZMNLjXzU |
|||||
11 | VIP. Модульное тестирование |
|
|||
На этом уроке мы познакомимся с модульным тестированием. Мы напишем небольшой калькулятор, в который добавим проект для модульного тестирования, и покажем, как это всё работает, как это нужно использовать. Отчёт отправил: 6632. Волнухин Владимир Выполнено за 50 мин. [Показать отчёт] Научился: Работать с UnitTest-проектами в Visual Studio. Проводить базовое тестирование методов. Сложности: Ничего Комментарии: Полезный урок, хорошо бы больше на подобную тему. |
|||||
Итого: 11 видеоуроков |
2 час. 54 мин. 6 тестов |
15 чел. | |||
Финалисты: zhikharevav, Максим, Новопашин Владимир, Максим Лапшинов, Волнухин Владимир, Tekashnik, Александр, Николай Денисов, Иван, no name, Александр, Anatoli, Freud, Татьяна, MaxB . |