Си шарп видео уроки

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

Мат Конём и Слоном

Полное решение шахматной задачи - мат конём и слоном

Умение создавать свои алгоритмы - это залог успеха программиста.
Именно алгоритмическое мышление отделяет
обычного программиста от профессионала.

Программист должен уметь составить алгоритм
для решения любой задачи. Как минимум - обычным перебором.
Как максимум - с оптимизацией по времени и по памяти.

Решение шахматной задачи - наиболее интересный
и эффективный способ потренироваться в этом.


Мы напишем алгоритм комплексного (полного)
решения шахматной задачи - мат конём и слоном.

Мы найдём правильный ход для любой позиции.
На примере решения этой задачи
ты очень многое сможешь узнать
о теории алгоритмов.



Хочу купить!

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

Цена: 2500 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Постановка задачи 00:10:00 21 чел. ★ 5 Free
  Мы начинаем видеокурс "Мат конём и слоном".
Цель курса - создать базу решений этой задачи.
То есть для любой исходной комбинации найти
правильный ход, который ведёт к победе.
 
3073. Павел
10558. Иван Воронин
10494. Алексей В.
9567. Максим
2 Перебор всех комбинаций 00:20:58 16 чел. ★ 5 $
  На этом уроке мы создадим вложенные циклы
для перебора всех возможных вариантов
расстановки наших фигур на шахматной доске.
 
9567. Максим
6925. Артём
6958. Кирилл
9323. Алексей
3 Королевское правило 00:17:12 14 чел. ★ 5 $
  На этом уроке мы проверим, стоят ли короли на соседних клетках.
Потом мы напишем заготовку для проверки, является ли позиция матовой.
Самостоятельное задание - написать функцию onKnight().
При желании написать проверку для слона пока писать не нужно.
 
8275. Tekashnik
6203. Николай Миролюбов
9323. Алексей
7119. Новопашин Владимир
4 Конь ходит буквой Гэ 00:11:53 13 чел. ★ 4.9 $
  На этом уроке мы напишем метод, который проверяет,
рубит ли конь указанное поле. Алгоритм не сложный.
Самостоятельное задание:
почитать о Нотации Форсайта — Эдвардса на Википедии.

Написать метод формирования этой нотации по имеющимся координатам четырёх фигур.
Сайт для чтения FEN: http://www.apronus.com/chess/wbeditor.php
 
11589. Yefim
8275. Tekashnik
3073. Павел
7119. Новопашин Владимир
5 Нотация Форсайта - Эдвардса 00:15:17 13 чел. ★ 5 $
  На этом уроке мы научимся экспортировать
найденные позиции в FEN код, чтобы посмотреть
их в любом шахматном эмуляторе.
Сайт для чтения FEN: http://www.apronus.com/chess/wbeditor.php

Самостоятельное задание:
Написать метод проверки для слона, бьёт ли он поле.
 
3073. Павел
3073. Павел
10162. Дмитрий
10558. Иван Воронин
6 Ворошиловский слон 00:24:09 12 чел. ★ 5 $
  На этом уроке мы напишем наконец-таки
метод bool onBishop (byte x, byte y) и
подсчитаем количество матовых позиций.
А в конце урока блеснём использованием итератора :)

Самостоятельное задание: придумать структуру
для хранения найденных позиций и описать её в комментариях к отчёту.
 
10494. Алексей В.
10494. Алексей В.
7119. Новопашин Владимир
10162. Дмитрий
7 Две структуры 00:11:34 12 чел. ★ 4.9 $
  На этом уроке мы подготовимся к рефакторингу нашего кода.
 
11589. Yefim
9263. Андрей Н.
10558. Иван Воронин
7119. Новопашин Владимир
8 Рефакторинг кода 00:36:36 11 чел. ★ 4.9 $
  На этом уроке мы сделаем рефакторинг всего кода.
В конце урока будем искать ошибку :)
 
8275. Tekashnik
7119. Новопашин Владимир
7119. Новопашин Владимир
10162. Дмитрий
9 Чистый ход 00:10:29 10 чел. ★ 5 $
  На этом уроке мы перенесём метод getBoard() и getFEN()
в структуру Combo, найдём последнюю ошибку и порадуемся чистому коду!
 
10162. Дмитрий
9323. Алексей
9323. Алексей
4004. Елена
10 Псевдо-алгоритм перебора 00:28:27 10 чел. ★ 5 $
  На этом уроке мы составим псевдо-алгоритм
поиска всех решений поставленной задачи.
Самостоятельное задание -
проработать алгоритм на шахматной доске для ферзя и короля.
 
9567. Максим
9263. Андрей Н.
10162. Дмитрий
8275. Tekashnik
11 Белая и чёрная очередь 00:16:34 9 чел. ★ 5 $
  На этом уроке мы начнём реализацию алгоритма
перебора всех позиций с правильными ходами за белых.
Создадим ещё две структуры и две очереди - белую и чёрную.
 
7119. Новопашин Владимир
10162. Дмитрий
11589. Yefim
10494. Алексей В.
12 Генерация белых ходов 00:35:09 9 чел. ★ 5 $
  На этом уроке мы напишем три метода,
которые возвращают все возможные ходы
для каждой белой фигуры - для короля, слона и коня.
В конце урока выведем все позиции,
в которых белые ставят мат в один ход.
 
8275. Tekashnik
9263. Андрей Н.
9263. Андрей Н.
10494. Алексей В.
13 Белая коробка 00:16:38 9 чел. ★ 5 $
  На этом уроке мы создадим класс WhiteBox
для хранения всех позиций, где ход белых
с правильным ходом для приближения к мату.
 
11589. Yefim
9323. Алексей
9323. Алексей
7119. Новопашин Владимир
14 Консольная шахматная доска 00:10:01 9 чел. ★ 5 $
  На этом уроке мы напишем метод print()
для вывода шахматной доски в консоли.
 
10162. Дмитрий
8275. Tekashnik
7119. Новопашин Владимир
10558. Иван Воронин
15 156 матов в полтора хода 00:30:02 9 чел. ★ 5 $
  На этом уроке мы допишем алгоритм,
узнаем, какая в нём есть ошибка,
исправим её и найдём все позиции
"мат в полтора хода", их будет 156.
 
7119. Новопашин Владимир
10558. Иван Воронин
10494. Алексей В.
8275. Tekashnik
16 Мат в 33 хода. 00:44:49 8 чел. ★ 5 $
  На этом уроке мы поместим два цикла в один общий цикл,
чтобы сгенерировать решения для всех позиций,
постепенно увеличивая дистанцию до матового окончания.

Что ещё можно и нужно сделать.
0. Проверить, нет ли патовых ситуаций.
1. Пересмотреть все позиции, для которых нет решения.
2. Изменить массив белого ящик, координата слона от 0 до 31.
3. Модифицировать алгоритм, чтобы он работал для чернопольного слона.
4. Сделать симметрию относительно белого короля в квадрате 4х4.
5. Пересмотреть самые сложные позиции - мат в 67 полуходов.
6. Придумать эффективный способ хранения для белого ящика.
7. Решить задачу "мат двумя слонами".
8. Решить задачу "мат ладьёй".
9. Решить задачу "мат ферзём".
 
10162. Дмитрий
9263. Андрей Н.
8275. Tekashnik
7119. Новопашин Владимир
17 ПОЛУФИНАЛЬНЫЙ УРОК 7 чел. ★ 5 $
  Поздравляю, ты прошёл ровно половину курса!
Приложи фото самых интересных найденных
матовых/патовых/иных комбинаций
Напиши, нравится ли тебе этот курс,
нашёл ли ты здесь то, что ожидал.

... Меж тем сказке далеко до развязки ...
 
10494. Алексей В.
8275. Tekashnik
4004. Елена
9263. Андрей Н.
18 Нано Шахматы 00:06:12 8 чел. ★ 5 $
  На этом уроке вам будет представлен фотокурс НаноШахматы,
который необходимо пройти, для эффектного и логичного завершения этого курса.
 
10162. Дмитрий
10494. Алексей В.
8275. Tekashnik
7119. Новопашин Владимир
19 Сериализация матрицы ходов 00:30:07 6 чел. ★ 5 $
  На этом уроке мы сделаем сериализацию и десериализацию массива WhiteMove[,,,].
Затем обсудим, как можно размер файла уменьшить в 100 раз.
 
10162. Дмитрий
7119. Новопашин Владимир
10494. Алексей В.
9323. Алексей
20 Экономия памяти 00:22:26 6 чел. ★ 5 $
  На этом уроке мы переделаем класс WhiteBox,
теперь для его работы потребуется в несколько раз меньше памяти.
 
7119. Новопашин Владимир
8275. Tekashnik
9323. Алексей
9263. Андрей Н.
21 Шестнадцать мегабайт 00:41:54 6 чел. ★ 5 $
  На этом уроке мы сохраним базу ходов в 16-мегабайтный файл.
Также сделаем считывание из файла и несколько раз поиграем
с компьютером, пока он нас не заматует.
 
8275. Tekashnik
10494. Алексей В.
10162. Дмитрий
9323. Алексей
22 Игра без массива 00:17:39 6 чел. ★ 5 $
  На этом уроке мы ещё раз переделаем класс WhiteBox,
теперь для работы программы НЕ НАДО будет загружать
в память весь файл, нужные значения будут загружаться
по ходу игры прямо из нужного места в файле.
 
9323. Алексей
9323. Алексей
7119. Новопашин Владимир
9263. Андрей Н.
23 План визуализации 00:23:12 6 чел. ★ 5 $
  С этого урока мы начнём создавать визуализацию созданной базы данных.
На этом уроке мы составим план действий по внедрению проекта.
Мы будем работать с технологиями PHP и JavaScript.
 
10162. Дмитрий
9263. Андрей Н.
10494. Алексей В.
8275. Tekashnik
24 Четыре фигуры на доске 00:25:47 4 чел. ★ 5 $
  На этом уроке мы реализуем первые три пункта нашего плана.
1. Отобразить шахматную доску с 4 фигурами.
2. Отобразить доску по заданному FEN-коду.
3. Разместить тексты для отображения информации.
 
10494. Алексей В.
10162. Дмитрий
8275. Tekashnik
8275. Tekashnik
25 Создание PHP функций 00:50:58 4 чел. ★ 5 $
  На этом уроке мы погрузимся в РНР-программирование.
Мы напишем несколько функций для считывания данных
из нашей базы данных ходов и формирования их в массиве.
 
10162. Дмитрий
10162. Дмитрий
8275. Tekashnik
8275. Tekashnik
26 Дружба PHP с JavaScript 00:28:33 4 чел. ★ 5 $
  На этом уроке мы подружим PHP с JavaScript -
сделаем вызов из JavaScript функции на PHP,
результат которой будет возвращён назад в JavaScript.
 
9323. Алексей
10162. Дмитрий
10162. Дмитрий
10494. Алексей В.
27 Сериализация Json 00:46:49 4 чел. ★ 5 $
  На этом уроке мы передадим из РНР в JavaScript
всю информацию о белых и чёрных хода, используя json-сериализацию.
Используя полученный объект мы сформируем содержание информационной панели.
 
10162. Дмитрий
10162. Дмитрий
9323. Алексей
8275. Tekashnik
28 Чёрные ходы на доске 00:09:14 4 чел. ★ 5 $
  На этом коротком уроке мы отобразим все возможные
ходы чёрного короля прямо на доске, используя числа -
сколько ходов до мата останется при указанном ходе.
 
10162. Дмитрий
10162. Дмитрий
8275. Tekashnik
9323. Алексей
29 Последний ход 00:34:01 3 чел. ★ 5 $
  На этом уроке мы закончим программирование
визуального оформления мата конём и слоном
с использованием технологий PHP и JavaScript.
 
8275. Tekashnik
8275. Tekashnik
9323. Алексей
10494. Алексей В.
30 Чёрно-белый слон 00:15:58 3 чел. ★ 5 $
  На этом уроке мы доведём до логического завершения
функцию работы с нашей базой данных, чтобы
она корректно отрабатывала позиции
с чёрнопольным белым слоном.
Это оказалось не так уж и сложно :)
 
10494. Алексей В.
8275. Tekashnik
9323. Алексей
9323. Алексей
31 ФИНАЛЬНЫЙ УРОК 3 чел. ★ 5 $
 
 
8275. Tekashnik
9323. Алексей
10494. Алексей В.
32 VIP урок с ладьёй 00:55:05 3 чел. ★ 5 $
  На этом VIP-уроке мы решим шахматную задачу "Мат ладьёй".
Для этого мы пройдёмся по всем функциям,
файлам и скриптам и слегка модифицируем
их для решения новой задачи.
 
9323. Алексей
10494. Алексей В.
10494. Алексей В.
8275. Tekashnik
  Итого:   32 видеоурока общей продолжительностью 12 час. 27 мин. 3 чел. ★ 5  
  Финалисты:   Tekashnik,   Алексей,   Алексей В. .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Записывать видеообзор.
Отличный курс получился. Такое переплетение различных технологий. Самый интересный курс из всех, что здесь есть (по-моему). Да и шахматы подтянуть поможет :) Ни разу еще мата конем и слоном в партиях ставить не приходилось. Все остальное в видеообзоре :)
Научился: Записывать видеообзор
Трудности: Записывать видеообзор
Крутой курс, сложный! С хитрыми переплетениями разных технологий + для любителей шахмат можно много чего узнать) и в конце создать искусственный интеллект.