Курсы для программистов

Формула программиста
основатель — Волосатов Евгений Витольдович

Решение Судоку

Серия видеоуроков по созданию алгоритма решения известной головоломки.

Мы пишем консольное приложение,
которое считывает с файла/интернета поле,
находит все возможные решения заданной головоломки
рекурсивным алгоритмом, по правилам игры Судоку.
Процесс поиска отображается визуально.

Посмотрите сайт, посвящённый этой игре: http://робомозг.рф
Автор сайта - наш формулист 3397. Сергей.


Решение головоломки Судоку.
Генерация полей.

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 1000 p.


Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:05:08 21 чел. ★ 5 Done
  Мы начинаем серию видеоуроков по созданию алгоритма решения головоломки Судоку.

Ваша задача -
разобраться с правилами этой игры.
найти/распечатать бумажное (!) Судоку.
Решить его ручкой или карандашом.
Сфоткать решение и приложить к отчёту.
Отчёт отправил: 10494. Алексей В. Выполнено за 15 мин. [Показать отчёт]
Научился: Фотографировать Судоку 
Сложности: Ничего 
Комментарии: Нет 
2 Сетка для цифр 00:16:08 17 чел. ★ 4.9 Done
  На этом уроке мы создадим класс Sudoku,
опишем в нём две константы и создадим
функцию для отображения сетки для цифр.
Отчёт отправил: 10494. Алексей В. Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Работать с псевдографикой. Создавать аккуратные, компактные и доступные для понимания массивы. 
Сложности: Ничего 
Комментарии: Замечаний нет. Все отлично. Благодарность автору урока!!!! 
3 Печать цифр в таблице 00:17:57 17 чел. ★ 5 Done
  На этом уроке мы добавим метод для добавления цифр в наш Судоку.
Также напишем функцию для отображения цифр в консольном экране.
И свяжем их через использование делегата.
В конце урока заполним наше поле случайнмыи цифрами.
Отчёт отправил: 10494. Алексей В. Выполнено за 30 мин. [Показать отчёт]
Научился: Размещать цифры случайным образом в нужных местах не смещая при этом рамки формы из псевдоэлементов. Делегат передает результат работы метода в другой класс. Я так понял, что он передает весь метод из класса в класс, а не только отдельные переменные, как это делается с помощью статических методов. 
Сложности: Сложность состояла в правильном описании делегата. Если в передающем классе это одна строка, то в приемном целая система определений и записей. 
Комментарии: Все замечательно. все хорошо!!!!! 
4 Проверка правил игры 00:13:23 16 чел. ★ 5 Done
  На этом уроке мы наконец-таки начнём писать алгоритм.
В метод PlaceDigit() мы запрограммируем проверку правил игры.
Числа должны быть из верного диапозона, они не должны
повторяться в строчке, в столбце и в квадрате.
Под занавес мы сгенирируем случайную матрицу по всем правилам судоку.
Не факт, что её можно будет решить, и что решение будет единственным.
Отчёт отправил: 10494. Алексей В. Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Оригинальное использование условного оператора If - Else. Убедился в правильности расположения цифр. Ничего не сместилось. Каждая цифра на своем знакоместе. После работы оператора, заполняющего цифры формируется рабочая поверхность головоломки. На первый взгляд уже нет повторений ни по вертикали, ни по горизонтали, ни внутри квадратов (могу ошибаться). Нужно ограничить только количество выводимых цифр. 
Сложности: Сложностей не было. 
Комментарии: Работа интересная. Много неожиданных решений. Хвала и процветание автору!!! 
5 Загрузка головоломки с интернета 00:25:44 14 чел. ★ 4.8 Done
  На этом уроке мы напишем функцию для загрузки Судоку с интернет-сайта.
Через буфер обмена содержимое страницы будет размещено в текстовом файле.
Алгоритм будет его анализировать и добавлять в матрицу класса Sudoku.

Отчёт отправил: 10494. Алексей В. Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Стало неожиданным решение взять рабочий материал из интернета. С неким приятным ожиданием было довести это дело до конца. С каждой новой строкой кода приближалась разгадка задуманного. И когда была проверена взглядом последняя цифра головоломки, возник восторг от того, что все задуманное получилось. 
Сложности: Сложного ничего не было.  
Комментарии: Была радость и восторг от полученных результатов. Огромная благодарность Евгению Витольдовичу. Я впервые на вебинаре, на сайте вашем всего 5 дней. Я очень рад, что случайности не случайны. 
6 Идея алгоритма - 81 цикл 00:11:48 13 чел. ★ 4.8 Done
  На этом уроке мы вручную проработаем алгоритм
поиска в глубь с возвращением.
Твоя задача - не аналитически решить судоку,
а программно, применяя описанный на уроке алгоритм.
Отчёт отправил: 10494. Алексей В. Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Усвоил алгоритм рекурсии 
Сложности: Дойти до конца. Устал на тысячной строке, когда алгоритм вновь вернулся ко второй строчке Судоку. 
Комментарии: Все отлично. 
7 Рекурсивная функция поиска 00:25:24 11 чел. ★ 5 Done
  На этом уроке мы напишем рекурсивную функцию NextDigit(),
которая и будет заниматься поиском решения головоломки.

Способы оптимизации алгоритма поиска решения:
https://habrahabr.ru/post/173795/
Отчёт отправил: 10494. Алексей В. Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Решать Судоку программным способом. 
Сложности: Дождаться решения сложной головоломки Судоку 
Комментарии: Все отлично 
8 Сохранение ответа 00:07:28 10 чел. ★ 5 Done
  На этом уроке мы напишем функцию для сохранения решения головоломки в текстовый файл.
Отчёт отправил: 10494. Алексей В. Выполнено за 15 мин. [Показать отчёт]
Научился: Повторил работу с делегатом. Научился сохранять результаты работы в файл. 
Сложности: Ничего 
Комментарии: Замечаний никаких. Все прекрасно. 
9 Генерация головоломок 00:15:25 9 чел. ★ 5 Done
  На этом уроке мы напишем алгоритм для формирования
Судоку-головоломок, поэкспериментируем с генератором случайных полей.
Отчёт отправил: 10494. Алексей В. Выполнено за 20 мин. [Показать отчёт]
Научился: Генерировать Судоку. 
Сложности: Ничего 
Комментарии: Все отлично. Следующие курсы будут Секундомер и Наношахматы. 
10 ФИНАЛЬНЫЙ УРОК 7 чел. ★ 4.7 $
  Поздравляю с завершением этого видеокурса!
Запиши и опубликуй видеообзор созданной программы.
Напиши, какой курс будешь проходить следующим.
11 VIP. Модульное тестирование 00:36:07 6 чел. ★ 5 $
  На этом уроке мы познакомимся с модульным тестированием.
Мы напишем небольшой калькулятор, в который добавим
проект для модульного тестирования, и покажем,
как это всё работает, как это нужно использовать.
  Итого:   11 видеоуроков общей продолжительностью 2 час. 54 мин. 6 чел. ★ 4.93  
  Финалисты:   zhikharevav,   Максим,   Новопашин Владимир,   Максим Лапшинов,   Волнухин Владимир,   Tekashnik .

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Записывать видео обзор
Трудности: Найти время что бы никто не мешал
Ночью снилось, что я придумываю алгоритм решения судоку... Это вообще нормально? Курс хороший, рекомендую. Следующий будет шифрование, улитки вперёд!!!!
Научился: Терпению. Удалось только с n-ного раза записать. Домашние постоянно влазили в обзор.
Всё отлично