# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы начинаем «МикроШахматы на JavaScript». В начале было поле. И было на поле 64 клетки. Цель курса - запрограммировать все правила игры в шахматы. На выходе мы получим скрипт для игры в шахматы для двух игроков, с соблюдением всех правил. На этом уроке мы выведем на экран доску, используя JavaScript и HTML. В каждом уроке кроме видео есть фото-инструкция по изменению кода. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 22 мин. [Показать отчёт] Научился: Практически первое знакомство с javascript/html. Именно сейчас очень нужен. Сложности: С удовольствием выполнил бы ДЗ по раскраске клеток и их координатам, но пока не имею достаточных знаний. |
|||||
2 | Координатное поле |
|
|||
На этом уроке мы увеличим клетки нашей доски, чтобы они были одинаковыми в любой ситуации. Уберём зазор между клетками. Так же мы раскрасим доску по правилам игры, чтобы правая-нижняя клетка была светлой. Добавим координаты слева и снизу доски, а для полноты картины добавил заголовок. Отчёт отправил: 4814. Дмитрий Выполнено за 55 мин. [Показать отчёт] Научился: Изучаю javascript. Все отлично. Сложности: Все ново. |
|||||
3 | Шахматные буквы |
1 тест |
|||
На этом уроке мы отобразим «шахматные» буквы на доске. Для этого мы создадим массив, заполним его буквами, которые кодируют фигуры по нотации FEN и сделаем их отображение в таблице. Отчёт отправил: 4814. Дмитрий Выполнено за 5 час. 56 мин. [Показать отчёт] Научился: Создавать шахматную доску, раскрашивать, добавлять фигуры. Великолепно. Сложности: Все понятно, но ново. |
|||||
4 | Фигуры на доске |
1 тест |
|||
На этом уроке наши фигуры обретут свой облик, для этого нам потребуется вспомогательная функция figure_to_html(), которая будет возвращать облик нужной нам фигуры в формате HTML-Unicode. Поиграемся с размером и цветом фигур. Отчёт отправил: 4814. Дмитрий Выполнено за 9 час. 16 мин. [Показать отчёт] Научился: Преобразовывать знаки в фигуры. Все замечательно. Сложности: Очень люблю функцию, которая считывает из текстового файла различные знаки ".", "#", "*" и т.п., преобразовывает в графические картинки и формирует карту. Как, например, в сокобане. |
|||||
5 | Светофор для фигур |
|
|||
На этом уроке мы будем отмечать, какими фигурами можно ходить и куда можно ходить. Пока реализуем простое правило: можно ходить на пустую клетку или клетку врага. Для этого мы добавим ещё один массив inf, для хранения возможных ходов выбранной фигуры. Так же мы доработаем функцию show_map (), чтобы она отображала подсказки из массива inf. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 5 мин. [Показать отчёт] Научился: Создание массива для подсветки и перемещения фигур. Все замечательно. Сложности: Сложно было найти ошибку, связанную со скобками в массиве {} вместо []. Ошибки не высвечиваются, а искать тяжко. |
|||||
6 | Фигурная перекличка |
2 теста |
|||
На прошлом уроке мы статично отобразили выбранную фигуру и поля, куда эта фигура может пойти. Теперь наша задача реализовать это программно. Для этого нам понадобится переменная для хранения цвета хода и реализуем функции: mark_moves_from(), can_move_from() и get_color(). Протестируем результат изменив цвет хода. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 46 мин. [Показать отчёт] Научился: Реализовали функции определения возможности движения фигур при условии, что сейчас наш ход. Все замечательно. Сложности: Все понятно. |
|||||
7 | Шахматные выборы |
|
|||
На этом уроке мы реализуем выбор фигуры для хода через клик левой кнопкой мышки по нужной клетке. Для этого мы сформируем вызов функции click_box() с координатами клетки, по которой было нажато. Отчёт отправил: 4814. Дмитрий Выполнено за 12 час. 37 мин. [Показать отчёт] Научился: Реализованы функции, отражающие позиции, с которых идем, на позиции, на которые можем пойти. Все отлично. Сложности: Все понятно. Мне очень нравится этот курс. |
|||||
8 | Завершение хода |
1 тест |
|||
На этом уроке мы напишем функцию click_box_to(), для движения фигуры в указанную клетку - нужно будет поменять место фигуры в матрице map. Ещё напишем функцию turn_move() для передачи права хода. Отчёт отправил: 4814. Дмитрий Выполнено за 18 мин. [Показать отчёт] Научился: Реализовали ход фигур, а также передачу хода. Добавили функцию start. Все отлично. Сложности: Отличный курс. Все понятно. До тех пор, пока просто смотришь и слушаешь. |
|||||
9 | ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю, четверть курса позади. Предлагаю немножко передохнуть и развлечься. Напиши, чему ты научился за первую часть этого курса. Нравится ли тебе такой способ изложения материала. Какие видишь преимущества и недостатки курса. Разыграй любую партию и запиши на видео. Можно без голоса. Отчёт отправил: 4814. Дмитрий Выполнено за 10 мин. [Показать отчёт] Научился: Создавать шахматную доску, помещать фигуры, выбирать фигуру для хода, перемещать ее, передавать ход. Сложности: Все новое, все интересное. Видеообзор: 6rxcMLJLz54 |
|||||
10 | Шахматная бюрократия |
1 тест |
|||
На этом уроке мы создадим функцию, которая будет проверять, может ли фигура сходить так, как её попросят - то есть реализовать алгоритмы передвижения для каждой фигуры Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Прекрасный курс. Все отлично. Сложности: Думаю, что в функции can_move в первую очередь мы должны проверить имеется ли для каждой фигуры возможность сделать ход, т.е. переместить фигуру хотя бы на 1 свободную либо занятую противником клетку. Если фигура со всех сторон закрыта своими, то двигаться она не может. |
|||||
11 | Кто есть кто? |
1 тест |
|||
На этом уроке мы реализуем функцию is_correct_move() и добавим в неё проверку всех возможных фигур. Так же добавим заглушки корректности хода для каждой фигуры. Протестируем функции, найдём ошибку в коде и исправим её. Отчёт отправил: 4814. Дмитрий Выполнено за 51 мин. [Показать отчёт] Научился: Написали функцию is_correct_move, реализовали проверку фигуры, стоящей на данной клетке, а также сделали 6 заглушек для описания правил хода каждой из фигур. Все великолепно. Сложности: Сложность реализации: Король - 2. Ферзь - 5. Офицеры - 4 Кони - 6 Тура - 3 Пешка - 1 |
|||||
12 | Лошадью ходи! |
1 тест |
|||
На этом уроке мы реализуем самую простую функцию: is_correct_knight_move() - конь ходит буквой Г :) Отчёт отправил: 4814. Дмитрий Выполнено за 21 мин. [Показать отчёт] Научился: Реализовали функцию возможных ходов конем. На редкость просто. Сложности: Думаю, что функция возможных ходов короля без учета рокировки и угрозы шаха: if (Math.abs (dx - sx) * Math.abs (dy - sy) <= 1) if (Math.abs (dx - sx) == 1 || Math.abs (dy - sy) == 1) return true; return false; |
|||||
13 | Королевские шаги |
|
|||
На этом уроке мы реализуем функцию is_correct_king_move() Потом немного повеселимся. Увидим самый быстрый мат и отрывок из к/ф "Джентльмены удачи". Отчёт отправил: 4814. Дмитрий Выполнено за 8 мин. [Показать отчёт] Научился: Реализовали функцию допустимых ходов для короля. Все отлично. Сложности: Все понятно. |
|||||
14 | Горизонтальная вертикаль |
1 тест |
|||
На этом уроке мы реализуем функцию: is_correct_rook_move() Ладья ходит по вертикали или горизонтали. Отчёт отправил: 4814. Дмитрий Выполнено за 54 мин. [Показать отчёт] Научился: Реализована функция хода туры. Сложности: Все отлично |
|||||
15 | Не стой на пути! |
|
|||
На этом уроке мы доработаем функцию is_correct_rook_move(). Добавим проверку, находится ли кто-то на пути фигуры. Так же мы добавим функцию on_map() для проверки нахождения координат в пределах доски. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 18 мин. [Показать отчёт] Научился: Реализовывать функцию, проверяющую наличие препятствий на пути движения, а также проверка нахождения на карте. Сложности: Все интересно. |
|||||
16 | Слоновья тропа |
|
|||
На этом уроке мы реализуем функцию: is_correct_bishop_move(), она будет похожа на is_correct_rook_move(), но с небольшими изменениями. Также оптимизируем циклы, добавим проверку границ доски. Добавим функцию is_empty(), которая будет проверять доступность хода на эту клетку. Отчёт отправил: 4814. Дмитрий Выполнено за 49 мин. [Показать отчёт] Научился: Оптимизировали функции проверки корректности хода для слона и туры, добавили функцию, проверяющую нахождение в рамках карты, добавили ее в функции can_move_from/to. Сложности: Уже становится сложно удержать это в голове, особенно с учетом оптимизаций. |
|||||
17 | Дорогу Королеве! |
1 тест |
|||
На этом уроке мы ещё раз скопируем алгоритм проверки хода в функцию is_correct_queen_move(). С третьей попытки мы догадаемся вообще убрать проверку на корректность значений delta_x/delta_y. Ваше задание - предложить свой вариант выделения общего алгоритма из эти трёх функций - is_correct_move_queen/bishop/rook(). Отчёт отправил: 4814. Дмитрий Выполнено за 38 мин. [Показать отчёт] Научился: Реализовали функцию проверки корректности хода для ферзя. Сложности: Все новое и интересное. |
|||||
18 | Мелочь пузатая |
1 тест |
|||
На этом уроке мы порефакторим наш код, выделив общий алгоритм из трёх функций: is_correct_move_queen/bishop/rook(). Отчёт отправил: 4814. Дмитрий Выполнено за 44 мин. [Показать отчёт] Научился: Вынесли и оптимизировали код для ферзя, слона и туры. Сложности: Становится посложнее разбираться в функциях, они уже переплетены между собой. |
|||||
19 | ПОЛУФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю, половина курса позади. Предлагаю немножко передохнуть и развлечься. Напиши, чему ты научился за вторую часть этого курса. Нравится ли тебе такой способ изложения материала. Какие видишь преимущества и недостатки курса. Разыграй любую партию и запиши на видео. Можно без голоса. Отчёт отправил: 4814. Дмитрий Выполнено за 15 мин. [Показать отчёт] Научился: Научился формулировать и реализовывать правила хода для каждой из фигур с учетом проверки на корректность хода. Все отлично и крайне нужно. Сложности: Сложности начинаются сейчас, когда мы уже пишем функции не для каждой из фигур, а объединяем их, оптимизируя. С одной стороны, функции становятся проще, с другой, глаза начинают разбегаться, усложняется иерархия функций. Видеообзор: 5zI4yOVCl5M |
|||||
20 | Пешкины законы |
|
|||
На этом уроке мы поговорим о пешках: + чем она отличается от других фигур? + какие у неё правила? + какие у неё исключения? Мы реализуем функцию is_correct_pawn_move() и заглушки для вспомогательных функций: is_correct_white_pawn_move() и is_correct_black_pawn_move(). Лирическое задание - найти/нарисовать интересную картинку о пешках. Отчёт отправил: 4814. Дмитрий Выполнено за 35 мин. [Показать отчёт] Научился: Шахматным правилам, связанным с пешкой. Сложности: Поговорки: Конь пешке не товарищ. Кафтан продай, но пешку возьми. Лес рубят - пешки летят. Сотку махнул - пешкой занюхни. С похмелья и пешка - огурец! Пешка не пушка, а воробей - не кукушка. Хочешь драться - бей ферзя, но родную тещу даже пешкой бить нельзя. |
|||||
21 | Судьба пешки |
1 тест |
|||
На этом уроке мы воспользуемся сайтом draw.io для рисования схемы алгоритма пешки. На схеме отобразим следующие правила для пешек: 1. направление зависит от цвета; 2. положение может быть на горизонталях 1-6; 3. могут ходить только прямо и только на одну клетку; 4. с 1/6 горизонтали могут ходить на две клетки через пустую; 5. рубят наискосок на одно поле вперёд-влево/вправо; 6. могут рубить на битое поле (взятие на проходе); 7. на последней линии превращается в слона/коня/ладью/ферзя своего цвета. Превращение пешки будет реализовано в функции завершения хода box_click_to(). Отчёт отправил: 4814. Дмитрий Выполнено за 16 час. 26 мин. [Показать отчёт] Научился: Первый опыт работы с draw.io. Черчение блок-схемы алгоритма. Сложности: Еще не разобрался с draw.io, поэтому схема корявая. |
|||||
22 | Пешка на охоте |
1 тест |
|||
На этом уроке мы реализуем часть алгоритма для функции is_correct_white_pawn_move() на основе схемы, созданной на прошлом уроке. Добавим заглушку для функции is_pawn_passant(). Отчёт отправил: 4814. Дмитрий Выполнено за 33 мин. [Показать отчёт] Научился: Приступили к реализации правил хода и взятия фигур для пешек. Все отлично. Сложности: Все понятно. |
|||||
23 | Пешка в сапогах |
|
|||
На этом уроке мы доработаем алгоритм для функции is_correct_white_pawn_move() на основе блок-схемы. Так же подкорректируем нашу схему. Отчёт отправил: 4814. Дмитрий Выполнено за 30 мин. [Показать отчёт] Научился: Доработали механизм проверки возможности хода пешки на 1-2 клетки. Все отлично. Сложности: Все понятно. |
|||||
24 | Взятие на проходе шустрых пешек |
1 тест |
|||
На этом уроке мы реализуем алгоритм взятия на проходе. Для этого мы доработаем ранее созданную заглушку is_pawn_passant(). Добавим вспомогательные переменные для хранения координат возможного взятия на проходе, они нам пригодится на следующем уроке. Отчёт отправил: 4814. Дмитрий Выполнено за 19 час. 11 мин. [Показать отчёт] Научился: Продолжили реализацию функции "пешка на проходе". Все замечательно. Сложности: Все отлично. |
|||||
25 | Радар для быстрых пешек |
1 тест |
|||
-- Куда торопимся? -- Почему превышаем? -- Покажите ваши координатики... -- Пройдёмте, пешечка, в отделение... На этом уроке мы доработаем функцию click_box_to(), добавив проверку прыгнула ли пешка через клетку.прыгнула, то мы сохраняем координаты, по которым её можно поймать. Вынесем написанный алгоритм в отдельную функцию check_pawn_attack() После чего мы уберём пешку противника в отделение для сбитых фигур. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 40 мин. [Показать отчёт] Научился: Научились брать пешку на проходе. Все отлично. Сложности: По отдельности все понятно. |
|||||
26 | Афроамериканская пешка |
|
|||
На этом уроке мы реализуем правила движения чёрных пешек по аналогии с белыми. Для начала мы перенесём общую проверку из функций is_correct_*_pawn_move() в функцию is_correct_pawn_move(). Доработаем функцию is_pawn_passant(). Объединим функции is_correct_*_pawn_move() в общую функцию is_correct_sign_pawn_move(). Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: Написали функцию допустимых ходов для черной пешки и тут же объединили 2 функции в 1 и оптимизировали их. Такой вариант лучше. Но мы еще не закончили полностью с черной пешкой, т.к. еще не реализовали механизм "поедания" черной пешкой белую "на проходе". Необходимо внести дополнения в функцию click_box_to Сложности: По отдельности все понятно, но в целом становится уже сложнее ориентироваться во взаимосвязи и последовательности функций. |
|||||
27 | Пешкина мечта |
1 тест |
|||
На этом уроке мы исправим ошибку в функции click_box_to(), чтобы чёрные пешки тоже могли съедать после взятия на проходе. После чего мы перенесём рабочий код в функцию check_pawn_attack(). Отчёт отправил: 4814. Дмитрий Выполнено за 28 мин. [Показать отчёт] Научился: Подкорректировали функцию click_to_box и для черных. Все отлично. Сложности: Серьезные мультики, даже пугающие. "Проходная пешка" - каждый пытается встать перед Тобой, остановив развитие! "Таймаут" - мужикам удалось-таки убежать из-под опеки и сообразить на двоих! "Эндшпиль" - разыгрывать СМЕРТЕЛЬНО опасно! |
|||||
28 | Волшебное превращение пешки |
|
|||
На этом уроке мы реализуем алгоритм превращения пешки. Для этого нам понадобится новая функция promote_pawn(). Выбор фигуры реализуем через функцию prompt(). Добавим проверку, чтобы можно было выбирать только разрешённые фигуры. Доработаем функцию click_box_to() - добавим вызов превращения пешки если это необходимо. Отчёт отправил: 4814. Дмитрий Выполнено за 1 день 4 час. 40 мин. [Показать отчёт] Научился: Закончили описание правил для пешек и фигур. Функция prompt очень понравилась. Сложности: Все отлично. |
|||||
29 | ТРЕТИЙ ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Поздравляю, три четверти курса позади. Предлагаю немножко передохнуть. Напиши, чему ты научился за третью часть этого курса. Нравится ли тебе такой способ изложения материала. Какие видишь преимущества и недостатки курса. Приложи к отчёту любую шахматную карикатуру. Отчёт отправил: 4814. Дмитрий Выполнено за 6 мин. [Показать отчёт] Научился: Вся третья четверть была посвящена исключительно пешке как самой сложной для реализации фигуре. Научили пешку правильно ходить, прыгать через клетку, брать чужую пешку на проходе, а также превращаться в сильную фигуру! Сложности: Все отлично и крайне интересно! |
|||||
30 | Случайный шах |
|
|||
На этом уроке мы реализуем функцию is_check(), чтобы король не ходил на клетку, которая под боем. На время теста вы уберём все пешки и добавим функцию is_check() с генерируемой случайностью шаха для всех фигур на поле. Отчёт отправил: 4814. Дмитрий Выполнено за 20 мин. [Показать отчёт] Научился: Добавили новую функцию is_check, имитирующую ситуацию шаха. В дальнейшем эта функция будет запрещать ходы фигур, в результате которых король будет подпадать под шах. Сложности: Все отлично. |
|||||
31 | Возврат хода |
1 тест |
|||
На этом уроке мы опишем псевдокод для функции is_check(). Добавим две глобальных переменных: move_figure и to_figure. Так же добавим функции: move_figure() и back_figure(). Модернизируем функции click_box_to() и promote_pawn() для поддержки новой системы передвижения фигур по доске. Отчёт отправил: 4814. Дмитрий Выполнено за 54 мин. [Показать отчёт] Научился: Добавили 2 новые функции move_figure (сделать ход) и back_figure (отмена хода) для проверки не попадет ли под шах король. Сложности: Становится сложно. Оптимизация - это хорошо, но когда уже "привычные" функции внезапно меняют свою структуру либо вовсе исчезают - это пугает. |
|||||
32 | Король в розыске |
1 тест |
|||
На этом уроке мы добавим в функцию is_check() вызов move_figure() и back_figure(). Реализуем вспомогательную функцию find_figure() и поэкспериментируем. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 7 мин. [Показать отчёт] Научился: Приступили к реализации проверки не окажется ли король под боем в результате нашего хода. Все отлично. Сложности: Уже сказываются объемы кода и рефакторинг. |
|||||
33 | Служба безопасности короля |
1 тест |
|||
На этом уроке мы продолжим дорабатывать функцию is_check(). Переберём все ходы противника, чтобы исключить из возможных ходов короля клетки, которые под боем. Отчёт отправил: 4814. Дмитрий Выполнено за 34 мин. [Показать отчёт] Научился: Доработали функцию is_check. О сложности судить мне сложно, могу сказать, что очень красивое решение. Сложности: Все замечательно. |
|||||
34 | Шах вперёд - шаг назад |
1 тест |
|||
На этом уроке мы выделим часть кода из функции is_check() в новую функцию: is_check_after_move(), которая будет вызываться для проверки возможности хода. Сама же функция is_check() останется независимой и может вызываться тогда, когда нам будет нужно. Отчёт отправил: 4814. Дмитрий Выполнено за 54 мин. [Показать отчёт] Научился: Добавили функцию is_check_after_move, упростили is_check. Все отлично. Сложности: По отдельности все понятно. |
|||||
35 | Информационная панель |
1 тест |
|||
На этом уроке мы выведем информацию о текущем состоянии игры. Для этого мы реализуем функцию show_info(), которая будет вызываться при каждой генерации доски. Так же нам надо будет реализовать вспомогательные функции: is_checkmate() и is_stalemate(). Доработаем функцию mark_moves_from() для подсчёта количества возможных ходов текущего игрока. Оптимизируем определение очерёдности хода. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 39 мин. [Показать отчёт] Научился: Реализовали функцию show_info, написали функции объявления мата и пата. Провели очередную оптимизацию. Сложности: Все понятно. Но объемы растут. |
|||||
36 | Подвиг безымянной пешки |
1 тест |
|||
На этом уроке мы добавим проверку на пешечный подвиг по спасению короля: может ли она взять на проходе вражескую пешку, которая угрожает королю шахом. Для этого вынесем проверку взятия на проходе в отдельную функцию move_pawn_attack(). Для корректной работы кода нам понадобится ещё одна функция back_pawn_attack(). Отчёт отправил: 4814. Дмитрий Выполнено за 15 час. 3 мин. [Показать отчёт] Научился: Реализовали функцию взятия на проходе пешки, которая объявляет шах королю. Отлично. Сложности: Уже нелегко разобраться в коде. |
|||||
37 | ФИНИШНАЯ ПРЯМАЯ |
без видео 1 тест |
|||
Быстро сказка сказывается, не быстро дело делается. Наша программа практически завершена, осталось самую малость - научить короля прятаться за ладьёй, это таинство называется "рокировка". Ваше задание. 1. Найти/нарисовать хорошую картинку на тему "Рокировки" и приложить её к отчёту. 2. Выписать все правила, при которых возможна рокировка. Отчёт отправил: 4814. Дмитрий Выполнено за 4 мин. [Показать отчёт] Научился: Рокировку делают так: короля переставляют через одно поле по направлению к ладье, а ладью переносят через короля и ставят на соседнее с ним поле. Рокировка на королевском фланге называется короткой рокировкой, рокировка на ферзевом фланге называется длинной. Рокировка не допускается в таких позициях: если король или ладья уже ходили (даже если они потом вернулись на исходные места). Если ходил король, рокировка невозможна ни в ту, ни в другую сторону. Если ходила одна из ладей, а король не ходил, рокировать нельзя лишь в ту сторону, где стоит делавшая ход ладья; если между королем и ладьей стоят свои фигуры или фигуры противника; если король атакован фигурой противника; если король после рокировки попал бы на поле, находящееся под ударом фигуры противника; если король при рокировке должен пройти через поле, атакованное фигурой противника. Если же ладья должна пройти через такое поле и даже если она сама атаковала, то рокировать можно. Сложности: Все отлично. |
|||||
38 | Правила рокировки |
1 тест |
|||
На этом уроке мы обсудим правила рокировки короля. Так же обсудим необходимы действия для её совершения. Найти интересную картинку на тему рокировки. Отчёт отправил: 4814. Дмитрий Выполнено за 6 час. 30 мин. [Показать отчёт] Научился: Повторили правила и составили псевдоалгоритм рокировки. Все отлично. Сложности: Все понятно. |
|||||
39 | Флаг над замком |
1 тест |
|||
На этом уроке мы создадим 4 глобальных флага: can_white_castle_left, can_white_castle_right, can_black_castle_left, can_black_castle_right. Реализуем вспомогательную функцию update_castle_flags(). Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 59 мин. [Показать отчёт] Научился: Реализовали функцию проверки не делали ли ранее (до момента рокировки) ходы ладьи и король. Если фигуры двигались - рокировка с их участием уже невозможна. Все отлично. Сложности: Все понятно. |
|||||
40 | Король всемогущий |
1 тест |
|||
На этом уроке мы добавим проверку для короля, может ли он сделать рокировку - can_castle(). Добавим заглушки для вспомогательных функций: can_white_castle() и can_black_castle(). Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Приступили к реализации корректности условий рокировки для короля. Все отлично. Сложности: Все понятно. |
|||||
41 | Рокировка под шахом |
1 тест |
|||
На этом уроке мы доработаем функцию can_castle(), добавив проверку на шах и оптимизируем is_check(). Отчёт отправил: 4814. Дмитрий Выполнено за 56 мин. [Показать отчёт] Научился: Дополнили функцию проверки допустимости рокировки короля can_castle, а также изящно упростили функцию проверки наличия шаха is_check. Все отлично. Сложности: Все понятно. Удалось при рефакторинге ничего не потерять. |
|||||
42 | Белолевая рокировка |
1 тест |
|||
На этом уроке мы отрефакторим функцию can_castle(), добавив заглушки вспомогательных функций can_white/black_cl/cr(). Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 55 мин. [Показать отчёт] Научился: Жестко отрефакторили can_castle, удалив почти все, что написали до этого. Подготовили заглушки для реализации проверки допустимости рокировки королей влево-вправо. Сложности: Рефакторинг - это пугающая оптимизация, в ходе которой можно потерять нить рассуждений и разрушить все ранее существующие связи, затратив затем множество усилий на поиск ошибок и случайно стертые функции. Требует хирургической точности. |
|||||
43 | Рокировка на все времена |
1 тест |
|||
На этом уроке мы реализуем функции can_white/black_cl/cr().
Отчёт отправил: 4814. Дмитрий Выполнено за 28 мин. [Показать отчёт] Научился: Реализовали все условия для рокировки с точки зрения короля. Все замечательно. Сложности: Все понятно. |
|||||
44 | Ладейный паркур |
1 тест |
|||
На этом уроке мы реализуем функцию move_castling_rook(), чтобы при рокировке наши ладьи тоже перемещались. Отчёт отправил: 4814. Дмитрий Выполнено за 31 мин. [Показать отчёт] Научился: Полностью реализовали функции, обеспечивающие рокировку короля и ладьи, закончили основную часть курса. Все отлично. Сложности: По отдельности все понятно. Старался комментировать буквально каждую строчку, чтобы в дальнейшем было проще разобраться с кодом. |
|||||
45 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с завершением курса! Оставь, пожалуйста, отзыв об этом курсе. Запиши видеообзор созданной программы. Напиши, что ещё можно добавить в эту программу. Отчёт отправил: 4814. Дмитрий Выполнено за 12 час. 41 мин. [Показать отчёт] Научился: Мне очень понравился видеокурс, особенно с учетом того, что мне как раз необходимо изучать джаваскрипт для создания "игры своей мечты", где C# - сервер, js - клиент. Курс "попался" очень вовремя, именно в тот момент, когда я как раз приобрел книги по js/html/css, к тому же имеет много общих элементов с моей будущей игрой - двумерная карта, перемещение и взятие фигур, поиск пути, передача хода и т.п. Сложности: Самым сложным будет адаптировать код под свои нужды и углубить свои навыки в процессе написания самостоятельной игры. Особенно с учетом клиент-серверного приложения. В этом вопросе рассчитываю также на курс "клиент-серверные шахматы". Дополнительная неожиданная проблема возникла при записи видео в связи с тем, что youtube не поддерживает параметры монитора 21:9, что очень странно, т.к. месяц назад подобную запись пропустил. Пришлось более 10 раз переписывать обзор. Видеообзор: Sy1CuJ0ClNw |
|||||
46 | VIP урок - Минное поле |
|
|||
На этом уроке мы реализуем функцию mark_attack(), чтобы отображать все битые поля на шахматной доске, куда может атаковать противник сразу после вашего хода. Доработаем функцию show_map() для отображения полей. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Добавили функцию, отражающую степень защищенности соперником клеток. Сложности: Сложность в том, что вообще не знаю html, поэтому сложно ориентироваться в редактировании функции show_map, когда задаем ширину и цвет рамки. Зато параллельно учится html. |
|||||
47 | VIP урок - Бестолковый интеллект |
|
|||
На этом уроке мы реализуем функцию doRandMove(), для случайного выбор какой фигурой пойти, Так же столкнём два "рандомайзера" на шахматной доске. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 23 мин. [Показать отчёт] Научился: Реализовали функцию случайных ходов. Организовал сражение 2 рандомайзеров. Убедился, что черный рандомайзер играет в шахматы лучше меня. Я таких мудреных комбинаций и не видел. Черные играли крайне агрессивно, слопав почти все белые фигуры, кроме 2 пешек и слона, потеряв всего лишь 2 пешки, 2 ладьи и 1 слона. С последних 2 ходов черных я вообще обалдел: Король белых стоял на своей позиции e1. Черная пешка делает ход b2-b1, превращается в ферзя, шахует белого короля. Королю закрыться нечем, должен уходить. Король не может уйти на f2, т.к. ферзь и черная пешка угрожают, не может на e2, т.к. черный конь бьет. При этом король даже не может подойти к пешке, т.к. связка конь-пешка блокируют сразу 4 клетки в линии. И король делает вынужденный ход - Ke1-d2. И черные тут же двигают пешку c4-c3 и объявляют мат. При этом эта пешка прикрыта сразу ферзем и слоном! И королю уйти некуда, т.к. все 8 (!!!) клеток вокруг под ударом!!! P.S. Ожидал более бессмысленных ходов от рандомайзера и взаимоуничтожения фигур, а он провел эталонную финальную атаку без лишних ходов. И сантиментов. Сложности: Курс очень понравился. По отдельности все понятно. Сложно будет разбираться при детальном анализе и попытке сделать сниппеты. |
|||||
Итого: 47 видеоуроков |
7 час. 14 мин. 32 теста |
13 чел. | |||
Финалисты: Иван Воронин, Алексей В., Tekashnik, Артём, Сергей Соколов, Yefim, Константин, Елена, Дмитрий, Andrew, Tom, Александр Шлома, MaxB . |