# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы начинаем «МикроШахматы на JavaScript». В начале было поле. И было на поле 64 клетки. Цель курса - запрограммировать все правила игры в шахматы. На выходе мы получим скрипт для игры в шахматы для двух игроков, с соблюдением всех правил. На этом уроке мы выведем на экран доску, используя JavaScript и HTML. В каждом уроке кроме видео есть фото-инструкция по изменению кода. Отчёт отправил: 8275. Tekashnik Выполнено за 37 мин. [Показать отчёт] Научился: Рисовать в одном диве 64 дива, по средствам JS Сложности: Думать как сделать задания со звёздочками Комментарии: Ну что ж, погнали)) |
|||||
2 | Координатное поле |
|
|||
На этом уроке мы увеличим клетки нашей доски, чтобы они были одинаковыми в любой ситуации. Уберём зазор между клетками. Так же мы раскрасим доску по правилам игры, чтобы правая-нижняя клетка была светлой. Добавим координаты слева и снизу доски, а для полноты картины добавил заголовок. Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: Использовать стили для оформления таблицы Сложности: Использовать стили для оформления таблицы Комментарии: Вынес в css файл стили, так мне кажется красивее) |
|||||
3 | Шахматные буквы |
1 тест |
|||
На этом уроке мы отобразим «шахматные» буквы на доске. Для этого мы создадим массив, заполним его буквами, которые кодируют фигуры по нотации FEN и сделаем их отображение в таблице. Отчёт отправил: 8275. Tekashnik Выполнено за 48 мин. [Показать отчёт] Научился: Создавать массив буквенных фигур Сложности: Работать с CSS Комментарии: Всё идёт по плану) |
|||||
4 | Фигуры на доске |
1 тест |
|||
На этом уроке наши фигуры обретут свой облик, для этого нам потребуется вспомогательная функция figure_to_html(), которая будет возвращать облик нужной нам фигуры в формате HTML-Unicode. Поиграемся с размером и цветом фигур. Отчёт отправил: 8275. Tekashnik Выполнено за 41 мин. [Показать отчёт] Научился: Отображать фигуры в UNICODE Сложности: Найти опечатку) Комментарии: Повторяем пока наношахматы |
|||||
5 | Светофор для фигур |
|
|||
На этом уроке мы будем отмечать, какими фигурами можно ходить и куда можно ходить. Пока реализуем простое правило: можно ходить на пустую клетку или клетку врага. Для этого мы добавим ещё один массив inf, для хранения возможных ходов выбранной фигуры. Так же мы доработаем функцию show_map (), чтобы она отображала подсказки из массива inf. Отчёт отправил: 8275. Tekashnik Выполнено за 52 мин. [Показать отчёт] Научился: РАскрашивать ячейки использую вспомогательный массив Сложности: Найти ошибку Комментарии: Хотел попробовать сделать анимацию, но код очень сильно увеличивается при этом( |
|||||
6 | Фигурная перекличка |
2 теста |
|||
На прошлом уроке мы статично отобразили выбранную фигуру и поля, куда эта фигура может пойти. Теперь наша задача реализовать это программно. Для этого нам понадобится переменная для хранения цвета хода и реализуем функции: mark_moves_from(), can_move_from() и get_color(). Протестируем результат изменив цвет хода. Отчёт отправил: 8275. Tekashnik Выполнено за 36 мин. [Показать отчёт] Научился: подкрашивать либо белые либо чёрные фигуры Сложности: Найти оибку в тексте Комментарии: Теперь нужно для каждого типа фигур в отдельности писать функции, могут они ходить или нет |
|||||
7 | Шахматные выборы |
|
|||
На этом уроке мы реализуем выбор фигуры для хода через клик левой кнопкой мышки по нужной клетке. Для этого мы сформируем вызов функции click_box() с координатами клетки, по которой было нажато. Отчёт отправил: 8275. Tekashnik Выполнено за 43 мин. [Показать отчёт] Научился: Показывать условно возможный ход, пр клике по фигуре) Сложности: Не запутаться с JS Комментарии: Пора скрипты в отдельный файл выносить |
|||||
8 | Завершение хода |
1 тест |
|||
На этом уроке мы напишем функцию click_box_to(), для движения фигуры в указанную клетку - нужно будет поменять место фигуры в матрице map. Ещё напишем функцию turn_move() для передачи права хода. Отчёт отправил: 8275. Tekashnik Выполнено за 47 мин. [Показать отчёт] Научился: Писать функцию передачи хода Сложности: Придумывать, что было самым сложным Комментарии: Надо будет, как нибудь скрестить с наношахматами, чтобы ещё и перетаскивать можно было)) |
|||||
9 | ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю, четверть курса позади. Предлагаю немножко передохнуть и развлечься. Напиши, чему ты научился за первую часть этого курса. Нравится ли тебе такой способ изложения материала. Какие видишь преимущества и недостатки курса. Разыграй любую партию и запиши на видео. Можно без голоса. Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 45 мин. [Показать отчёт] Научился: Записывать видеообзор Сложности: Записывать видеообзор Комментарии: Курс интересен тем что почти полностью пишется на JavaScript. А так как я с ним не очень хорошо знаком, то мне вдвойне интереснее научиться чему то новому и конечно же повторить всё старое. Вообще люблю всё новое, а когда это переплетается с классикой, а шахматы это классика, то это по настоящему здорово. Видеообзор: lJzeoR2KZKg |
|||||
10 | Шахматная бюрократия |
1 тест |
|||
На этом уроке мы создадим функцию, которая будет проверять, может ли фигура сходить так, как её попросят - то есть реализовать алгоритмы передвижения для каждой фигуры Отчёт отправил: 8275. Tekashnik Выполнено за 45 мин. [Показать отчёт] Научился: Писать JS код Сложности: Не запутаться в циклах циклах циклах Комментарии: НУ на мой взгляд в функции is_correct_move нужно определять что за фигура, а потом пеедавать для определённой фигуры в соответствующю функцию определения корректности её хода, ну как то так) |
|||||
11 | Кто есть кто? |
1 тест |
|||
На этом уроке мы реализуем функцию is_correct_move() и добавим в неё проверку всех возможных фигур. Так же добавим заглушки корректности хода для каждой фигуры. Протестируем функции, найдём ошибку в коде и исправим её. Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Писать много однотипных функций Сложности: Найти опечатку Комментарии: is_correct_king_move() - 5 is_correct_queen_move() - 6 is_correct_bishop_move() - 4 is_correct_knight_move() - 2 is_correct_rook_move() - 3 is_correct_pawn_move() - 1 |
|||||
12 | Лошадью ходи! |
1 тест |
|||
На этом уроке мы реализуем самую простую функцию: is_correct_knight_move() - конь ходит буквой Г :) Отчёт отправил: 8275. Tekashnik Выполнено за 16 мин. [Показать отчёт] Научился: Рeaлизовывать фyнкцию is_correct_knight_move() Сложности: Придумывать, что было самым сложным Комментарии: Красиво наблюдать, как всё это происходин та доске |
|||||
13 | Королевские шаги |
|
|||
На этом уроке мы реализуем функцию is_correct_king_move() Потом немного повеселимся. Увидим самый быстрый мат и отрывок из к/ф "Джентльмены удачи". Отчёт отправил: 8275. Tekashnik Выполнено за 12 мин. [Показать отчёт] Научился: Быстро писать функции JS Сложности: Придумывать, что было самым сложным Комментарии: Становится всё красивее и красивее. |
|||||
14 | Горизонтальная вертикаль |
1 тест |
|||
На этом уроке мы реализуем функцию: is_correct_rook_move() Ладья ходит по вертикали или горизонтали. Отчёт отправил: 8275. Tekashnik Выполнено за 42 мин. [Показать отчёт] Научился: Разрешать ладье ходить по прямой без каких либо препятствий) Сложности: Понять как работает алгоритм Комментарии: НАконец то на улице потеплело |
|||||
15 | Не стой на пути! |
|
|||
На этом уроке мы доработаем функцию is_correct_rook_move(). Добавим проверку, находится ли кто-то на пути фигуры. Так же мы добавим функцию on_map() для проверки нахождения координат в пределах доски. Отчёт отправил: 8275. Tekashnik Выполнено за 17 мин. [Показать отчёт] Научился: Принуждать ладью ходить по правилам) Сложности: Осознать до конца работу алгоритма Комментарии: Играть становится всё веселее и веселее) |
|||||
16 | Слоновья тропа |
|
|||
На этом уроке мы реализуем функцию: is_correct_bishop_move(), она будет похожа на is_correct_rook_move(), но с небольшими изменениями. Также оптимизируем циклы, добавим проверку границ доски. Добавим функцию is_empty(), которая будет проверять доступность хода на эту клетку. Отчёт отправил: 8275. Tekashnik Выполнено за 23 мин. [Показать отчёт] Научился: Повторять и модернизировать алгоритмы Сложности: Не запутаться Комментарии: Сделал подсветку выбранной фигуры |
|||||
17 | Дорогу Королеве! |
1 тест |
|||
На этом уроке мы ещё раз скопируем алгоритм проверки хода в функцию is_correct_queen_move(). С третьей попытки мы догадаемся вообще убрать проверку на корректность значений delta_x/delta_y. Ваше задание - предложить свой вариант выделения общего алгоритма из эти трёх функций - is_correct_move_queen/bishop/rook(). Отчёт отправил: 8275. Tekashnik Выполнено за 18 мин. [Показать отчёт] Научился: Управлять Ферзём Сложности: Придумывать, что было самым сложным Комментарии: Ну что ж, осталась только пешка) |
|||||
18 | Мелочь пузатая |
1 тест |
|||
На этом уроке мы порефакторим наш код, выделив общий алгоритм из трёх функций: is_correct_move_queen/bishop/rook(). Отчёт отправил: 8275. Tekashnik Выполнено за 39 мин. [Показать отчёт] Научился: Рефакторить JS код Сложности: Не запутаться во всём этом многобразии дробления функций Комментарии: Что касается дробления, то немного сложно, потому как это немного запутывает, чтобы раскрутить клудок нужно скакать по коду туда суда, визуально это не наглядно) Ещё у вас размер шрифта фигур немного больше чем вмещает ячейка поля, это видно когда на строке нет фигуры и она там появляется, поле немного прыгает, изменя динамически свои размеры) |
|||||
19 | ПОЛУФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю, половина курса позади. Предлагаю немножко передохнуть и развлечься. Напиши, чему ты научился за вторую часть этого курса. Нравится ли тебе такой способ изложения материала. Какие видишь преимущества и недостатки курса. Разыграй любую партию и запиши на видео. Можно без голоса. Отчёт отправил: 8275. Tekashnik Выполнено за 45 мин. [Показать отчёт] Научился: Записывать видеообзор без слов Сложности: Записывать видеообзор без слов Комментарии: Курс всё наращивает обороты, результат уже радует глаз, с каждым мазком всё лучше и лучше. Это успех! Видеообзор: eTXtZTg0HcI |
|||||
20 | Пешкины законы |
|
|||
На этом уроке мы поговорим о пешках: + чем она отличается от других фигур? + какие у неё правила? + какие у неё исключения? Мы реализуем функцию is_correct_pawn_move() и заглушки для вспомогательных функций: is_correct_white_pawn_move() и is_correct_black_pawn_move(). Лирическое задание - найти/нарисовать интересную картинку о пешках. Отчёт отправил: 8275. Tekashnik Выполнено за 47 мин. [Показать отчёт] Научился: Думать над пвсевдо алгоритмом Сложности: Думать над пвсевдо алгоритмом Комментарии: Начал рисаовать блок схему и что то она так разрослась, что решил посмотреть, а как надо тто делать её |
|||||
21 | Судьба пешки |
1 тест |
|||
На этом уроке мы воспользуемся сайтом draw.io для рисования схемы алгоритма пешки. На схеме отобразим следующие правила для пешек: 1. направление зависит от цвета; 2. положение может быть на горизонталях 1-6; 3. могут ходить только прямо и только на одну клетку; 4. с 1/6 горизонтали могут ходить на две клетки через пустую; 5. рубят наискосок на одно поле вперёд-влево/вправо; 6. могут рубить на битое поле (взятие на проходе); 7. на последней линии превращается в слона/коня/ладью/ферзя своего цвета. Превращение пешки будет реализовано в функции завершения хода box_click_to(). Отчёт отправил: 8275. Tekashnik Выполнено за 51 мин. [Показать отчёт] Научился: Рисовать блок-схему Сложности: Рисовать блок-схему Комментарии: С блоксхемами всегда было туго(( |
|||||
22 | Пешка на охоте |
1 тест |
|||
На этом уроке мы реализуем часть алгоритма для функции is_correct_white_pawn_move() на основе схемы, созданной на прошлом уроке. Добавим заглушку для функции is_pawn_passant(). Отчёт отправил: 8275. Tekashnik Выполнено за 23 мин. [Показать отчёт] Научился: Ввёл некоторые правила для проверки ходов пешки Сложности: Придумывать, что было самым сложным Комментарии: Наконец-то пешечка)) |
|||||
23 | Пешка в сапогах |
|
|||
На этом уроке мы доработаем алгоритм для функции is_correct_white_pawn_move() на основе блок-схемы. Так же подкорректируем нашу схему. Отчёт отправил: 8275. Tekashnik Выполнено за 24 мин. [Показать отчёт] Научился: Продолжил писать правила передвежения белой пешки Сложности: Найти опечатку Комментарии: По поводу блоксхемы, в моей одна то ошибочка исправлена была)) Мне сразу бросилось в глаза dy - dx == 1 условие. |
|||||
24 | Взятие на проходе шустрых пешек |
1 тест |
|||
На этом уроке мы реализуем алгоритм взятия на проходе. Для этого мы доработаем ранее созданную заглушку is_pawn_passant(). Добавим вспомогательные переменные для хранения координат возможного взятия на проходе, они нам пригодится на следующем уроке. Отчёт отправил: 8275. Tekashnik Выполнено за 38 мин. [Показать отчёт] Научился: Писать условие взятия пешки на проходе Сложности: Понять как это всё работает Комментарии: Изменять pawn_attak_x и pawn_attak_y нужно изменять при каждом ходе, если произожло движение пешкой на 2 клетки то устанавливать его, если же было любое другое движение делать несуществующие координаты) |
|||||
25 | Радар для быстрых пешек |
1 тест |
|||
-- Куда торопимся? -- Почему превышаем? -- Покажите ваши координатики... -- Пройдёмте, пешечка, в отделение... На этом уроке мы доработаем функцию click_box_to(), добавив проверку прыгнула ли пешка через клетку.прыгнула, то мы сохраняем координаты, по которым её можно поймать. Вынесем написанный алгоритм в отдельную функцию check_pawn_attack() После чего мы уберём пешку противника в отделение для сбитых фигур. Отчёт отправил: 8275. Tekashnik Выполнено за 53 мин. [Показать отчёт] Научился: Рубить пешкой на проходе Сложности: Найти опечатку, пришлось выводить дополнительную информацию Комментарии: Теперь белая пешка делает всё, только не превращается) |
|||||
26 | Афроамериканская пешка |
|
|||
На этом уроке мы реализуем правила движения чёрных пешек по аналогии с белыми. Для начала мы перенесём общую проверку из функций is_correct_*_pawn_move() в функцию is_correct_pawn_move(). Доработаем функцию is_pawn_passant(). Объединим функции is_correct_*_pawn_move() в общую функцию is_correct_sign_pawn_move(). Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: Модернизировать функции, чтобы решить проблему добавления параметров Сложности: Найти ошибки в коде Комментарии: Мне больше нравится не разбивать на функции, а добавлять параметры, это хоть и усложняет немного код, зато видно последовательность действий метода. В уроке реализовали всё кроме того чтобы исчезала белая пешка при рубке на проходе, я реализовал это так: function click_box_to (to_x, to_y){ .... if(is_pawn(from_figure)) if (to_x == pawn_attack_x && to_y == pawn_attack_y){ if (get_color(to_x, to_y) == "white") map[to_x][to_y - 1] = " "; // white else map[to_x][to_y + 1] = " "; // black } ... } |
|||||
27 | Пешкина мечта |
1 тест |
|||
На этом уроке мы исправим ошибку в функции click_box_to(), чтобы чёрные пешки тоже могли съедать после взятия на проходе. После чего мы перенесём рабочий код в функцию check_pawn_attack(). Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт] Научился: Повторил, то что сделал несколько уроков назад Сложности: найти время Комментарии: Мультик, просто психоделика)) А вообще нужно смысл в том, что нужно оглядываться по сторонам а не слепо рваться к своей цели) |
|||||
28 | Волшебное превращение пешки |
|
|||
На этом уроке мы реализуем алгоритм превращения пешки. Для этого нам понадобится новая функция promote_pawn(). Выбор фигуры реализуем через функцию prompt(). Добавим проверку, чтобы можно было выбирать только разрешённые фигуры. Доработаем функцию click_box_to() - добавим вызов превращения пешки если это необходимо. Отчёт отправил: 8275. Tekashnik Выполнено за 58 мин. [Показать отчёт] Научился: пользоваться prompt Сложности: Реализовать выбор по своему Комментарии: Пол дня мучался, чтобы сделать свой вывод, вывести смог, а ожидание, пока будет сделать выбор не получилосб.... кончился рабочий день((( |
|||||
29 | ТРЕТИЙ ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Поздравляю, три четверти курса позади. Предлагаю немножко передохнуть. Напиши, чему ты научился за третью часть этого курса. Нравится ли тебе такой способ изложения материала. Какие видишь преимущества и недостатки курса. Приложи к отчёту любую шахматную карикатуру. Отчёт отправил: 8275. Tekashnik Выполнено за 3 час. 26 мин. [Показать отчёт] Научился: Научился разбираться в JavaScript, не просто переписывать, а именно вносить свои изменения Сложности: Было очень непросто навносить всяких изменений в код, а потом пытаться, что бы это вообще заработало, и ещё чтобы заработало правильно. Комментарии: Посмотрел отчёт Ивана, про выбор фигуры для пешки и решил, что так же хочу сделать, в итоге несколько часов работы (проб и ошибок, осмысление кода), немного напутственных слов от Ивана, и вуаля, всё работает, я очень этому рад, что я смог это сделать, хотя уже было желание бросить и продолжить курс. После того как получилось, прямо эмоциональный подъём! Очень круто отходить от курса и делать дополнять что то своё) |
|||||
30 | Случайный шах |
|
|||
На этом уроке мы реализуем функцию is_check(), чтобы король не ходил на клетку, которая под боем. На время теста вы уберём все пешки и добавим функцию is_check() с генерируемой случайностью шаха для всех фигур на поле. Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт] Научился: Делать случайный шах Сложности: Найти время Комментарии: В нашем коде не все ходы боступны на как метод can_move возвращает через проверку is_check() с помощью функции random |
|||||
31 | Возврат хода |
1 тест |
|||
На этом уроке мы опишем псевдокод для функции is_check(). Добавим две глобальных переменных: move_figure и to_figure. Так же добавим функции: move_figure() и back_figure(). Модернизируем функции click_box_to() и promote_pawn() для поддержки новой системы передвижения фигур по доске. Отчёт отправил: 8275. Tekashnik Выполнено за 56 мин. [Показать отчёт] Научился: Добавлять функционал в JS Сложности: Рефакторить её отнасительно моих личных изменений Комментарии: Как только отступил от программы и стал сам писать, всё сложнее и сложнее каждый урок следующий выполнять) |
|||||
32 | Король в розыске |
1 тест |
|||
На этом уроке мы добавим в функцию is_check() вызов move_figure() и back_figure(). Реализуем вспомогательную функцию find_figure() и поэкспериментируем. Отчёт отправил: 8275. Tekashnik Выполнено за 41 мин. [Показать отчёт] Научился: Делать ход вперед и назад) Сложности: Переделать программу под мои нововведения Комментарии: Пришлось ещё немного модернизировать, что бы все функции работали как надо) |
|||||
33 | Служба безопасности короля |
1 тест |
|||
На этом уроке мы продолжим дорабатывать функцию is_check(). Переберём все ходы противника, чтобы исключить из возможных ходов короля клетки, которые под боем. Отчёт отправил: 8275. Tekashnik Выполнено за 33 мин. [Показать отчёт] Научился: Составлять алгаритм, чтобы не лопустьить после хода шах королю Сложности: Придумать, что было самым сложным Комментарии: Сложность is_check из шести будет 5, но так как мы использовали ранее реализованные функции, искомый метод реализовался просто) |
|||||
34 | Шах вперёд - шаг назад |
1 тест |
|||
На этом уроке мы выделим часть кода из функции is_check() в новую функцию: is_check_after_move(), которая будет вызываться для проверки возможности хода. Сама же функция is_check() останется независимой и может вызываться тогда, когда нам будет нужно. Отчёт отправил: 8275. Tekashnik Выполнено за 54 мин. [Показать отчёт] Научился: Отлавливать баги Сложности: Отлавливать баги Комментарии: Пока не все баги удалось исправить, вроде всё норм работает, но всё равно почему то в определённых моментах отрабатывает не так( |
|||||
35 | Информационная панель |
1 тест |
|||
На этом уроке мы выведем информацию о текущем состоянии игры. Для этого мы реализуем функцию show_info(), которая будет вызываться при каждой генерации доски. Так же нам надо будет реализовать вспомогательные функции: is_checkmate() и is_stalemate(). Доработаем функцию mark_moves_from() для подсчёта количества возможных ходов текущего игрока. Оптимизируем определение очерёдности хода. Отчёт отправил: 8275. Tekashnik Выполнено за 43 мин. [Показать отчёт] Научился: Писать код JS Сложности: НАйти время Комментарии: Ещё надо проверять, всякие события после превращения пешки |
|||||
36 | Подвиг безымянной пешки |
1 тест |
|||
На этом уроке мы добавим проверку на пешечный подвиг по спасению короля: может ли она взять на проходе вражескую пешку, которая угрожает королю шахом. Для этого вынесем проверку взятия на проходе в отдельную функцию move_pawn_attack(). Для корректной работы кода нам понадобится ещё одна функция back_pawn_attack(). Отчёт отправил: 8275. Tekashnik Выполнено за 48 мин. [Показать отчёт] Научился: Дорабатывать JS Сложности: Найти ошибку/опечатку Комментарии: Всё больше и больше возможностей, всё сложнее искать ошибки) |
|||||
37 | ФИНИШНАЯ ПРЯМАЯ |
без видео 1 тест |
|||
Быстро сказка сказывается, не быстро дело делается. Наша программа практически завершена, осталось самую малость - научить короля прятаться за ладьёй, это таинство называется "рокировка". Ваше задание. 1. Найти/нарисовать хорошую картинку на тему "Рокировки" и приложить её к отчёту. 2. Выписать все правила, при которых возможна рокировка. Отчёт отправил: 8275. Tekashnik Выполнено за 21 мин. [Показать отчёт] Научился: делать рокировку Сложности: Найти время в воскресенье Комментарии: Рокировка – это специальных ход короля с ладьей, чтобы обезопасить позицию короля, при котором за один ход ходят две фигуры. 1. На полях, между королем и ладьей, нет ни одной фигуры (своей или соперника). 2. Король еще не ходил. 3. Не ходила ладья, которая будет участвовать в рокировке. 4. Король не под шахом, если его атакуют, делать рокировку нельзя. Нужно его защищать. 5. Делая рокировку, король стает на битое поле или король перепрыгивает битое поле. Тогда ее делать нельзя. 6. Если, во время рокировки, ладья находится под боем или перепрыгивает битое поле, то это не мешает сделать рокировку. |
|||||
38 | Правила рокировки |
1 тест |
|||
На этом уроке мы обсудим правила рокировки короля. Так же обсудим необходимы действия для её совершения. Найти интересную картинку на тему рокировки. Отчёт отправил: 8275. Tekashnik Выполнено за 51 мин. [Показать отчёт] Научился: Составлять алгоритм рокировки Сложности: Составлять алгоритм рокировки Комментарии: Псевдо-алгоритм: Рокировка: Если король ходил - выходим Если ладья ходила - выходим Если есть битое поле на пути короля - выходим Если король под шахом - выходим Если король попадает под шах - выходим Если между королём и ладьей есть фигуры - выходим Если дошли до сюда, то делаем рокировку |
|||||
39 | Флаг над замком |
1 тест |
|||
На этом уроке мы создадим 4 глобальных флага: can_white_castle_left, can_white_castle_right, can_black_castle_left, can_black_castle_right. Реализуем вспомогательную функцию update_castle_flags(). Отчёт отправил: 8275. Tekashnik Выполнено за 47 мин. [Показать отчёт] Научился: Проверять можно ли делать рокировку (двигались ли короли и ладьи) Сложности: Придумать, что было самым сложным Комментарии: Всех с понедельником) |
|||||
40 | Король всемогущий |
1 тест |
|||
На этом уроке мы добавим проверку для короля, может ли он сделать рокировку - can_castle(). Добавим заглушки для вспомогательных функций: can_white_castle() и can_black_castle(). Отчёт отправил: 8275. Tekashnik Выполнено за 43 мин. [Показать отчёт] Научился: Подучил короля ходить) Сложности: Найти опечатку Комментарии: Небольшими шажками движемся к полноценной рокировке. |
|||||
41 | Рокировка под шахом |
1 тест |
|||
На этом уроке мы доработаем функцию can_castle(), добавив проверку на шах и оптимизируем is_check(). Отчёт отправил: 8275. Tekashnik Выполнено за 36 мин. [Показать отчёт] Научился: Оптимизировать код Сложности: Понять как это всё работает Комментарии: Пора бы уже и ладье начать скакать через короля) |
|||||
42 | Белолевая рокировка |
1 тест |
|||
На этом уроке мы отрефакторим функцию can_castle(), добавив заглушки вспомогательных функций can_white/black_cl/cr(). Отчёт отправил: 8275. Tekashnik Выполнено за 42 мин. [Показать отчёт] Научился: Переписывать код несколько раз Сложности: Удалять старый код Комментарии: Чувствую, что развязка близка)) хорошо бы на выходе всё бы работало, в месте с моими переделками) |
|||||
43 | Рокировка на все времена |
1 тест |
|||
На этом уроке мы реализуем функции can_white/black_cl/cr().
Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт] Научился: Описывать правила движения короля при рокировке Сложности: Придумать, что было самым сложным Комментарии: Уже прямо весь в нетерпении, когда же скаканёт ладья)) |
|||||
44 | Ладейный паркур |
1 тест |
|||
На этом уроке мы реализуем функцию move_castling_rook(), чтобы при рокировке наши ладьи тоже перемещались. Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 21 мин. [Показать отчёт] Научился: Переставлять ладью правильно Сложности: Разобраться во всём. Комментарии: Есть один баг в (моей) программе, не рассмотрен в курсе (возможно тоже есть). Дело вот в чём. Про пешку на проходе мы рассмотрели подробно что её рубкой можно защищать короля, а вот когда пешка доходит и превращается в фигуру другую и уже новая фигурв сразу делает шах. В моём случае почему то можно обороняться самим королём, т.е. отойти или же срубить, но нельзя например закрыться другой фигурой или срубить атакующую. Мучался, думал, но так решить не смог... А интересно у Евгения Витольдовича это работает корректно? И хотелось бы какого то совета... |
|||||
45 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
Поздравляю с завершением курса! Оставь, пожалуйста, отзыв об этом курсе. Запиши видеообзор созданной программы. Напиши, что ещё можно добавить в эту программу. Отчёт отправил: 8275. Tekashnik Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Записывать видеообзор Сложности: Найти время, когда дома не будет никто мешать записать видеообзор Комментарии: Спасибо за курс, очень интересно, познавательно и полезно, отошёл от общей концепции где то в середине, и очень сильно напрягался, выискивая проблемные места, когда скрипт работал не так как нужно. Но к моей радости я преодолел все тяготы и невзгоды и вышел победителем в этой схватке с JavaScript'ом Огромное спасибо, за предоставленную возможность Евгению Витольдовичу. Ещё научился пошагово дебажить JavaScript, но это уже совсем другая история ;) Видеообзор: WmZg14EG7Q8 |
|||||
46 | VIP урок - Минное поле |
|
|||
На этом уроке мы реализуем функцию mark_attack(), чтобы отображать все битые поля на шахматной доске, куда может атаковать противник сразу после вашего хода. Доработаем функцию show_map() для отображения полей. Отчёт отправил: 8275. Tekashnik Выполнено за 49 мин. [Показать отчёт] Научился: Маркировать битые поля Сложности: Понять как реализовать для пешки Комментарии: Пешка же ходит прямо а бъет наискосок, а функция can_move проверяет корректность хода, атак как фигуры нет впереди вот и получается, что битое поле это поле куда пешка ходит, а не куда рубит. Пришлось на каждое поле куда можно сходить времменно ставить чужую пешку, так вроде работает норм)) Вспомнил курс, взбодрил мозги, новой порцие JavaScript Ещё минут 10 искал ошибку, поставил лишнюю } |
|||||
47 | VIP урок - Бестолковый интеллект |
|
|||
На этом уроке мы реализуем функцию doRandMove(), для случайного выбор какой фигурой пойти, Так же столкнём два "рандомайзера" на шахматной доске. Отчёт отправил: 8275. Tekashnik Выполнено за 49 мин. [Показать отчёт] Научился: Научить скрип делать правильные, но произвольные ходы Сложности: Найти ошибку) Комментарии: Выиграть как правило бестолковый скрипт легко, но иногда он меня удивлял) А бывают моменты, когда есть всего лишь один ход, и тогда бестолковый скрипт не кажется уж совсем бестолковым. А зачатки ИИ можно начать писать с того, чтобы не ходить на битые поля. Курс очень хороший, рекомендую всем кто хочет познакоиться с JS или углубит свои знания в нём) Всем спасибо) |
|||||
Итого: 47 видеоуроков |
7 час. 14 мин. 32 теста |
13 чел. | |||
Финалисты: Иван Воронин, Алексей В., Tekashnik, Артём, Сергей Соколов, Yefim, Константин, Елена, Дмитрий, Andrew, Tom, Александр Шлома, MaxB . |