# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем видеокурс "Мат конём и слоном". Цель курса - создать базу решений этой задачи. То есть для любой исходной комбинации найти правильный ход, который ведёт к победе. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: начало положено, идём дальше |
|||||
2 | Перебор всех комбинаций |
|
|||
На этом уроке мы создадим вложенные циклы для перебора всех возможных вариантов расстановки наших фигур на шахматной доске. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: 6830292 комбинации при условии, что короли не стоят рядом и только белопольный/чёрнопольный слон! |
|||||
3 | Королевское правило |
|
|||
На этом уроке мы проверим, стоят ли короли на соседних клетках. Потом мы напишем заготовку для проверки, является ли позиция матовой. Самостоятельное задание - написать функцию onKnight(). При желании написать проверку для слона пока писать не нужно. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: 232 комбинации с учётом короля, коня и слона |
|||||
4 | Конь ходит буквой Гэ |
|
|||
На этом уроке мы напишем метод, который проверяет, рубит ли конь указанное поле. Алгоритм не сложный. Самостоятельное задание: почитать о Нотации Форсайта — Эдвардса на Википедии. Написать метод формирования этой нотации по имеющимся координатам четырёх фигур. Сайт для чтения FEN: http://www.apronus.com/chess/wbeditor.php Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: ничего нового Сложности: найти время Комментарии: найдены все позиции с королём и двумя конями, выведено в формате FEN см. скриншоты |
|||||
5 | Нотация Форсайта - Эдвардса |
|
|||
На этом уроке мы научимся экспортировать найденные позиции в FEN код, чтобы посмотреть их в любом шахматном эмуляторе. Сайт для чтения FEN: http://www.apronus.com/chess/wbeditor.php Самостоятельное задание: Написать метод проверки для слона, бьёт ли он поле. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: первый скрин с вариантами мата двумя конями второй скрин уже одна из 232 матовых комбинаций конём и слоном з.ы. есть над чем поработать (кстати, с двумя конями комбинации дублируются из-за того, что они меняются местами) |
|||||
6 | Ворошиловский слон |
|
|||
На этом уроке мы напишем наконец-таки метод bool onBishop (byte x, byte y) и подсчитаем количество матовых позиций. А в конце урока блеснём использованием итератора :) Самостоятельное задание: придумать структуру для хранения найденных позиций и описать её в комментариях к отчёту. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: способов хранения информации великое множество, отличаются они удобством и размером хранимой информации из-за методов хранения, но бинарный вариант самый оптимальный, хотя и не самый простой |
|||||
7 | Две структуры |
|
|||
На этом уроке мы подготовимся к рефакторингу нашего кода.
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: ничего нового Сложности: найти время Комментарии: немного порефакторил, но чувствую, что на след уроке уже будет нечем заняться, поэтому решил отложить до след урока =) |
|||||
8 | Рефакторинг кода |
|
|||
На этом уроке мы сделаем рефакторинг всего кода. В конце урока будем искать ошибку :) Отчёт отправил: 10558. Иван Воронин Выполнено за 40 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: на обоих скринах видно функцию onKing, на том, где комбинаций в консоли 232 верная функция, а на втором скрине где комбинаций 732 опечатка во второй строчке проверки расстояния между координатами (king2.y отнимается сам от себя) |
|||||
9 | Чистый ход |
|
|||
На этом уроке мы перенесём метод getBoard() и getFEN() в структуру Combo, найдём последнюю ошибку и порадуемся чистому коду! Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: решил разделить на 2 части функцию бишопа, см. скриншот з.ы. спасибо, очень радует этот курс, чем дальше, тем интереснее |
|||||
10 | Псевдо-алгоритм перебора |
|
|||
На этом уроке мы составим псевдо-алгоритм поиска всех решений поставленной задачи. Самостоятельное задание - проработать алгоритм на шахматной доске для ферзя и короля. Отчёт отправил: 10558. Иван Воронин Выполнено за 4 час. 30 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: да, пришлось повозиться с рисованием блок-схемы, конечно можно оптимизировать и довести до идеала, но времени это может занять ещё больше =) |
|||||
11 | Белая и чёрная очередь |
|
|||
На этом уроке мы начнём реализацию алгоритма перебора всех позиций с правильными ходами за белых. Создадим ещё две структуры и две очереди - белую и чёрную. Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: ничему новому Сложности: найти время Комментарии: присказка закончилась, началась сказка =) |
|||||
12 | Генерация белых ходов |
|
|||
На этом уроке мы напишем три метода, которые возвращают все возможные ходы для каждой белой фигуры - для короля, слона и коня. В конце урока выведем все позиции, в которых белые ставят мат в один ход. Отчёт отправил: 10558. Иван Воронин Выполнено за 48 мин. [Показать отчёт] Научился: Спустя полтора года продолжение курса очень ностальгично =) Всё отлично, идём дальше. з.ы. так как присутствовал во времена создания данного курса на вебинарах, то вся C# часть является повторением. Сложности: найти время |
|||||
13 | Белая коробка |
|
|||
На этом уроке мы создадим класс WhiteBox для хранения всех позиций, где ход белых с правильным ходом для приближения к мату. Отчёт отправил: 10558. Иван Воронин Выполнено за 47 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
14 | Консольная шахматная доска |
|
|||
На этом уроке мы напишем метод print() для вывода шахматной доски в консоли. Отчёт отправил: 10558. Иван Воронин Выполнено за 31 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. так как я использую git, то на скриншоте видно, что 612 суток назад были последние изменения в коде, т.е. как я ранее говорил, почти 2 года назад =) Сложности: найти время |
|||||
15 | 156 матов в полтора хода |
|
|||
На этом уроке мы допишем алгоритм, узнаем, какая в нём есть ошибка, исправим её и найдём все позиции "мат в полтора хода", их будет 156. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 6 мин. [Показать отчёт] Научился: Отличный урок, всё супер. идём дальше. Сложности: найти время |
|||||
16 | Мат в 33 хода. |
|
|||
На этом уроке мы поместим два цикла в один общий цикл, чтобы сгенерировать решения для всех позиций, постепенно увеличивая дистанцию до матового окончания. Что ещё можно и нужно сделать. 0. Проверить, нет ли патовых ситуаций. 1. Пересмотреть все позиции, для которых нет решения. 2. Изменить массив белого ящик, координата слона от 0 до 31. 3. Модифицировать алгоритм, чтобы он работал для чернопольного слона. 4. Сделать симметрию относительно белого короля в квадрате 4х4. 5. Пересмотреть самые сложные позиции - мат в 67 полуходов. 6. Придумать эффективный способ хранения для белого ящика. 7. Решить задачу "мат двумя слонами". 8. Решить задачу "мат ладьёй". 9. Решить задачу "мат ферзём". Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 27 мин. [Показать отчёт] Научился: Реализовал вывод на русском с корректным окончанием числительных. Проверки первые 4 комбинации из видео всё 1х1 и заодно демонстрация числительных. Доп. задания не делал и так урок затянутый, записывался пару лет назад, теперь уроки короче и это радует, больше времени и сил на самостоятельную работу. Сложности: найти время |
|||||
17 | ПОЛУФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю, ты прошёл ровно половину курса! Приложи фото самых интересных найденных матовых/патовых/иных комбинаций Напиши, нравится ли тебе этот курс, нашёл ли ты здесь то, что ожидал. ... Меж тем сказке далеко до развязки ... Отчёт отправил: 10558. Иван Воронин Выполнено за 16 мин. [Показать отчёт] Научился: Первая половина очень насыщена. Задействован нестандартный подход к решению, использовал yield, что очень интересно, так же задействована система очередей, что тоже не мало важный факт в доп. практике. Так как я был почти два года назад на вебинарах, во время которых записывалась данная часть курса, то затруднение никаких не вызвало, наоборот, спустя время данный уроки стали ещё понятнее и яснее, практика сила!!! =) Сложности: найти время |
|||||
18 | Нано Шахматы |
|
|||
На этом уроке вам будет представлен фотокурс НаноШахматы, который необходимо пройти, для эффектного и логичного завершения этого курса. Отчёт отправил: 10558. Иван Воронин Выполнено за 13 мин. [Показать отчёт] Научился: Курс "Наношахмат" пройден уже давно, ссылка на финальный урок с видео отчётом: https://www.videosharp.info/10558/checking/chess=861 пункты от 0 до 6 сделано, от 7 до 9 что-то припоминаю, но точно не помню когда и в каком курсе это реализовали, в любом случае, далее по ходу это будет реализовано, повторение мать учения =) Сложности: найти время |
|||||
19 | Сериализация матрицы ходов |
|
|||
На этом уроке мы сделаем сериализацию и десериализацию массива WhiteMove[,,,]. Затем обсудим, как можно размер файла уменьшить в 100 раз. Отчёт отправил: 10558. Иван Воронин Выполнено за 48 мин. [Показать отчёт] Научился: Продолжаем потихоньку проходить пройденное. Отличная оптимизация с 1,3гиг до 90мб, но это не предел, так как я был на том вебинаре, всё отлично, идём дальше. Сложности: найти время |
|||||
20 | Экономия памяти |
|
|||
На этом уроке мы переделаем класс WhiteBox, теперь для его работы потребуется в несколько раз меньше памяти. Отчёт отправил: 10558. Иван Воронин Выполнено за 52 мин. [Показать отчёт] Научился: Так как присутствовал на вебинаре при записи уроков, то проблем с реализацией Save() и 32 не возникло, см. скриншот. Функцию Load() оставил на потом, чтобы было чем заняться. Сложности: найти время |
|||||
21 | Шестнадцать мегабайт |
|
|||
На этом уроке мы сохраним базу ходов в 16-мегабайтный файл. Также сделаем считывание из файла и несколько раз поиграем с компьютером, пока он нас не заматует. Отчёт отправил: 10558. Иван Воронин Выполнено за 45 мин. [Показать отчёт] Научился: После того как вы изменили find = true; и закомментировали цикл на время тестирования без проверки корректности хода, обратно вы только раскомментировали цикл, а переменную find забыли вернуть в состояние false; поэтому и не срабатывала проверка на валидность хода короля. Всё отлично, идём дальше. Сложности: найти время |
|||||
22 | Игра без массива |
|
|||
На этом уроке мы ещё раз переделаем класс WhiteBox, теперь для работы программы НЕ НАДО будет загружать в память весь файл, нужные значения будут загружаться по ходу игры прямо из нужного места в файле. Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Отличный урок, присутствовал на вебинаре во время его записи, идём дальше. Сложности: найти время |
|||||
23 | План визуализации |
|
|||
С этого урока мы начнём создавать визуализацию созданной базы данных. На этом уроке мы составим план действий по внедрению проекта. Мы будем работать с технологиями PHP и JavaScript. Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт] Научился: Курс "Нано-шахматы" пройден ещё в июле 2016 года, так что UI имеется =) всё отлично, идём дальше, новые идеи могут родится в процессе разработки. Сложности: найти время |
|||||
24 | Четыре фигуры на доске |
|
|||
На этом уроке мы реализуем первые три пункта нашего плана. 1. Отобразить шахматную доску с 4 фигурами. 2. Отобразить доску по заданному FEN-коду. 3. Разместить тексты для отображения информации. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 29 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
25 | Создание PHP функций |
|
|||
На этом уроке мы погрузимся в РНР-программирование. Мы напишем несколько функций для считывания данных из нашей базы данных ходов и формирования их в массиве. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 43 мин. [Показать отчёт] Научился: Вынес функции PHP в отдельный файл. Создал отдельный файл test.php для тестирования новых функций. Немного порефакторинг проект. Всё отлично, идём дальше. Сложности: найти время |
|||||
26 | Дружба PHP с JavaScript |
|
|||
На этом уроке мы подружим PHP с JavaScript - сделаем вызов из JavaScript функции на PHP, результат которой будет возвращён назад в JavaScript. Отчёт отправил: 10558. Иван Воронин Выполнено за 59 мин. [Показать отчёт] Научился: Все функции PHP реализованы в отдельном файле и подключается там где необходимо. Все функции JavaScript так же вынесены в отдельный файл и подключается по тому же принципу. Координаты не стал использовать глобально, реализовал их передачу в виде параметров. Использовал свои наработки по проверке передаваемых числовых данных с поддержкой любого числа, даже которое выходит за рамки обычного понимания. Всё отлично, идём дальше. Сложности: найти время |
|||||
27 | Сериализация Json |
|
|||
На этом уроке мы передадим из РНР в JavaScript всю информацию о белых и чёрных хода, используя json-сериализацию. Используя полученный объект мы сформируем содержание информационной панели. Отчёт отправил: 10558. Иван Воронин Выполнено за 4 час. 14 мин. [Показать отчёт] Научился: Присваиваемые стили вынес в файл CSS стилей. Так же добавил поддержку подсвечивания лучшего хода если таких более одного. (см. скриншот) Всё отлично, идём дальше. Сложности: найти время |
|||||
28 | Чёрные ходы на доске |
|
|||
На этом коротком уроке мы отобразим все возможные ходы чёрного короля прямо на доске, используя числа - сколько ходов до мата останется при указанном ходе. Отчёт отправил: 10558. Иван Воронин Выполнено за 28 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Немного порефакторил функцию, чтобы не дублировать вызов методов. Сложности: найти время |
|||||
29 | Последний ход |
|
|||
На этом уроке мы закончим программирование визуального оформления мата конём и слоном с использованием технологий PHP и JavaScript. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 5 мин. [Показать отчёт] Научился: Цвета вынес в стили CSS, покраска всех лучших ходов отдельным цветом реализовал ещё на прошлых уроках. Всё отлично, идём дальше. Сложности: найти время |
|||||
30 | Чёрно-белый слон |
|
|||
На этом уроке мы доведём до логического завершения функцию работы с нашей базой данных, чтобы она корректно отрабатывала позиции с чёрнопольным белым слоном. Это оказалось не так уж и сложно :) Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Отличная оптимизация с использованием отзеркаливания. Всё отлично, движемся к финалу. Сложности: найти время |
|||||
31 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Отчёт отправил: 10558. Иван Воронин Выполнено за 9 мин. [Показать отчёт] Научился: Замечательный курс, наконец я его закончил, а то на данном проекте столько вкусностей постоянно новых выходит, частые вебинары, рук не хватает всё охватить и сразу, поэтому данный курс был отложен и наконец завершён спустя пару лет. Луче поздно, чем никогда. Вперёд, к VIP уроку. Сложности: найти время Видеообзор: Oh4i08gIHv0 |
|||||
32 | VIP урок с ладьёй |
|
|||
На этом VIP-уроке мы решим шахматную задачу "Мат ладьёй". Для этого мы пройдёмся по всем функциям, файлам и скриптам и слегка модифицируем их для решения новой задачи. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 17 мин. [Показать отчёт] Научился: Послушал идею, пробежался по коду сам, везде подправил где надо, потом досмотрел видео, всё отлично, курс завершён, отличные алгоритмы, комбинаторика это сила. Советую всем, кому интересны изящные решения и финты ушами. Курс гениальный. Сложности: найти время |
|||||
Итого: 32 видеоурока |
12 час. 27 мин. |
6 чел. | |||
Финалисты: Tekashnik, Алексей, Алексей В., Иван Воронин, Andrew, MaxB . |