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

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

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

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

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

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

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


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

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



2,000 руб.


Для подписки на пакет необходимо авторизоваться.

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

# Название видеоурока Решило Рейтинг Доступ
1 Постановка задачи 00:10:00 17 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: Ставить задачу 
Сложности: Искать тематическую картинку в интернете 
Комментарии: --- 
2 Перебор всех комбинаций 00:20:58 13 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Перебирать все возможные взаимные расположения фигур на доске. 
Сложности: --- 
Комментарии: --- 
3 Королевское правило 00:17:12 11 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 17 мин. [Показать отчёт]
Научился: Писать цикл для перебора всех клеток вокруг черного короля. Писать проверку атаки коня на клетку. 
Сложности: --- 
Комментарии: --- 
4 Конь ходит буквой Гэ 00:11:53 11 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 12 мин. [Показать отчёт]
Научился: Читать википедию.  
Сложности: --- 
Комментарии: --- 
5 Нотация Форсайта - Эдвардса 00:15:17 11 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: Реализации построения FEN-нотации 
Сложности: --- 
Комментарии: --- 
6 Ворошиловский слон 00:24:09 10 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: Научился реализации метода проверки атаки клетки слоном. 
Сложности: --- 
Комментарии: --- 
7 Две структуры 00:11:34 10 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 12 мин. [Показать отчёт]
Научился: Азам рефакторинга. 
Сложности: Решиться на него. 
Комментарии: Операторы сравнения реализовал в виде лямбда-выражений, ну не зря же мы их изучали в конце-то концов :D Для поля Index добавил и сеттер на всякий случай. 
8 Рефакторинг кода 00:36:36 9 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 50 мин. [Показать отчёт]
Научился: Рефакторингу! 
Сложности: --- 
Комментарии: Сеттер пригодился при реализации AllCoords() :) Логично было бы методы IsKnight/Bishop/King реализовать внутри Combo, тогда этот хвост "combo." не пришлось бы тащить везде за собой да и проверка шаха/мата... что может быть прекраснее: combo.IsCheckmate() :) Ну да ладно, пока и так хорошо Еще, кстати, вместо тернарного: (a > 0 ? 1 : -1) можно использовать Math.Sign(a) ------- PS: У меня сразу запустилось без ошибки, те же 232 позиции было выведено на экран... Так что я даже и не знаю, где вы могли ошибиться, скорее всего опечатка и меня от этого спасло Find/Replase 
9 Чистый ход 00:10:29 8 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 5 мин. [Показать отчёт]
Научился: К-Р-А-С-О-Т-А !-!-! 
Сложности: --- 
Комментарии: То что он Coord зелененьким подчеркивает - решается очень просто: набираете слово override, появляется список что можно заоверрайдить, двойной клик на нужном методе и он добавляется в код - генерируется автоматически, в принципе можно так и оставить уже и все будет работать (тем более у нас эти методы нигде и не используются) 
10 Псевдо-алгоритм перебора 00:28:27 8 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Рисовать 
Сложности: Вспомнить буквы 
Комментарии: --- 
11 Белая и чёрная очередь 00:16:34 7 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Поэтапно реализовать алгоритм. 
Сложности: --- 
Комментарии: --- 
12 Генерация белых ходов 00:35:09 6 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 55 мин. [Показать отчёт]
Научился: Реализации хода назад для трех шахматных фигур 
Сложности: Пришлось кое-что подебажить, вкралась очепятка 
Комментарии: Непонятно, почему не используете String Interpolation (Или у вас C# не шестой?) Код становится более лаконичным: public string ChessNotation => $"{(char)('a' + x)}{8 - y}"; Или здесь: Console.WriteLine($"{++qty} {white.Combo.GetFen()} {white.Combo.WhoThis(white.MoveFrom)}{white.MoveFrom.ChessNotation}-{white.MoveTo.ChessNotation}"); 
13 Белая коробка 00:16:38 6 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Хранить позиции в массиве 
Сложности: --- 
Комментарии: WhiteBox сделал встроенным в Chess, все-таки вне контекста шахматного класса этот вайтбокс неактуален... но для того чтобы не загромождать файл, сделал его partial еще один + от этого - при использовании других nested классов в WhiteBox не требуется указывать префикс "Chess." 
14 Консольная шахматная доска 00:10:01 6 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: Рисовать в консоли шахматную доску 
Сложности: --- 
Комментарии: --- 
15 156 матов в полтора хода 00:30:02 6 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 40 мин. [Показать отчёт]
Научился: Научился перебирать возможные ходы назад для черного короля 
Сложности: --- 
Комментарии: --- 
16 Мат в 33 хода. 00:44:49 6 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Проигрывать в шахматы своей программе 
Сложности: --- 
Комментарии: 0. Патовых ситуаций в нашей базе в принципе быть не может, так как мы решаем с конца, с матовой позиции и выполняем назад только ВОЗМОЖНЫЕ ходы.  
17 ПОЛУФИНАЛЬНЫЙ УРОК 5 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 5 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Курс очень интересный. Что самое необычное - недооцененность его сложности и разнообразности... Задумка как одного урока к курсу комбинаторике переросла во что-то чуть ли не большее чем сам курс комбинаторики :) 
18 Нано Шахматы 00:06:12 6 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 5 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: НаноШахматы выполнил ранее 
19 Сериализация матрицы ходов 00:30:07 5 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 40 мин. [Показать отчёт]
Научился: Бинарной сериализации .Net 
Сложности: --- 
Комментарии: --- 
20 Экономия памяти 00:22:26 5 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: Оптимизировать размер данных 
Сложности: --- 
Комментарии: Ну раз уж мы сеттер написали, то надо его использовать, незачем лишний раз генерировать отдельную структуру: вместо move.MoveFrom = new Coord { index = 0 }; запишем просто move.MoveFrom.index = 0; 
21 Шестнадцать мегабайт 00:41:54 5 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Читать и писать файлы побайтово 
Сложности: --- 
Комментарии: --- 
22 Игра без массива 00:17:39 5 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: Научился читать из файла по определенной позиции 
Сложности: --- 
Комментарии: Реализовал кеширование БД, массив оставил =) Мало ли... для затяжных игрищ =) 
23 План визуализации 00:23:12 5 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: Продумывать план визуализации приложения 
Сложности: --- 
Комментарии: --- 
24 Четыре фигуры на доске 00:25:47 4 чел. ★ 5 Open
25 Создание PHP функций 00:50:58 4 чел. ★ 5 $
26 Дружба PHP с JavaScript 00:28:33 4 чел. ★ 5 $
27 Сериализация Json 00:46:49 4 чел. ★ 5 $
28 Чёрные ходы на доске 00:09:14 4 чел. ★ 5 $
29 Последний ход 00:34:01 3 чел. ★ 5 $
30 Чёрно-белый слон 00:15:58 3 чел. ★ 5 $
31 ФИНАЛЬНЫЙ УРОК 3 чел. ★ 5 $
32 VIP урок с ладьёй 00:55:05 3 чел. ★ 5 $
  Итого:   32 видеоурока общей продолжительностью 12 час. 27 мин. 3 чел. ★ 5  
  Финалисты:   Tekashnik,   Алексей,   Алексей В. .

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




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

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

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

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