Промокод на скидку 15% на все курсы ITVDN- H94BCAB
Курсы для C#/.NET разработчикa-
Посмотрите архитектуру проекта:
Мы начинаем создание клиент-серверной игры в шахматы. Это комплекс программных решений с использованием: C#, ASP.NET, MS-SQL, EF, Unity. В результате мы создадим сервер, через который клиенты смогут играть друг с другом в шахматы со смартфона.
Проект состоит из 4 крупных частей:
1. Алгоритм. Программирование шахматных правил игры. C#. —
2. Оформление. Создание мультиплатформенных шахмат. Unity. —
3. Сервер. Создание базы данных с HTTP-API. ASP.NET, MS-SQL, EF. —
4. Клиент. Подключение клиента в игру. C#. —
Каждую часть мы реализуем на отдельной встрече. На первом вебинаре мы запрограммируем правила игры, чтобы в любой позиции мы могли установить все возможные ходы и результат окончания игры. На этом вебинаре не были реализованы правила рокировки, взятия на проходе и превращения пешки — это самостоятельное задание.
Бонус в конце вебинара — скрипт «Мат конём и слоном» :
Ведущий: Евгений Волосатов, магистр математики и информатики.
Целевая аудитория: начинающие C# разработчики и разработчики игр.
00:00 Вступление
2:24 План разработки проекта
5:39 Каким будет проект визуально
6:50 План вебинара
7:37 Схема классов для реализации функционала текущего вебинара
16:20 Создание библиотеки для шахмат (Chess)
23:40 Создание проекта (консольное приложение) и подключение библиотеки
30:05 План разработки. Перечисления Figure, Color
36:11 Реализация Square (клетка шахматной доски)
42:05 Реализация FigureOnSquare
44:39 Класс FigureMoving
49:01 Класс Board (шахматная доска)
59:12 Дополнение класса Chess
1:03:47 Работа с основной программой
1:10:00 Перерыв
1:16:53 Осмотр схемы классов. Дописывание класса Board
1:33:56 Поиск и исправление ошибок
1:40:50 Класс Move. Ходы фигур
2:10:28 Реализация выполнения всех ходов
2:44:19 Шах и мат
2:56:05 Тест приложения. Заключительное слово
Промокод на скидку 15% на все курсы ITVDN- H94BCAB
Курсы для C#/.NET разработчикa- https://itvdn.com/ru/specialities/net-developer?utm_source=yb_webinar_net
Классно, спасибо ) Чет мне захотелось свои шахматы написать ))
Очень интересно и достаточно подробно все излагается, с нетерпением жду следующей части.
Вебинар поставлен идеально! То что нужно, практика и еще раз практика. Когда учился в Вузе у нас он говорил теорию если что почитать всегда. А практику приходит с годами и опытом. Исходники тоже не давал говорил надо все делать самому.
я думал король самая сложный из за наличия ракировки,
вы не хотите использовать Alpha Zero как движок ?
Спасибо. Порадовали.
Евгений Витольдович, очень классно, не первое видео смотрю с Вашим участием, очень все круто. Как по мне то люди делающие стримы на образовательную тему должны у Вас многому поучиться) Видно уровень подготовки. Как по мне 10 из 10. Вы молодец продолжайте в том же духе!
3 часа на какой-то там раз. Сколько времени ушло при первом написании?
И да, интереснее было бы посмотреть на реализацию максимально быстрого генератора ходов.
интересненько
у меня 4 дня ушло, чтобы повторить
Я плохо пишу на русском языке, Извините за возможные орфографические ошибки.
я не досмотрел до конца перед написанием а только до 12 минуте где сказано как будет расчитыватся возможен ли ход.
примерно пол года назад я писал шахматы на с++ на два игрока, клиент уже был готовым, все чего он делал это давал координаты откуда и куда ходить, оставалось написать сервер со всей логикой.
для решения можно ли ходить по моему мнению нужно только откуда и куда ходить, вы хотели проще но только усложняете, ведь вы расчитываете не нужные ходы включая тот который человек хочет, и каждый ход вы должны расчитать все заного почти для каждой фигуре после пару первых ходов, вы каждый раз будете расчитывать 63 дополнительних ходов для каждой фигуры(если учесть ход на то же места где фигура находится).
недеюсь будете расчитывать все ходы каждой фигуры в момент её ПЕРВОГО косания в каждом ходу.
спасибо за видео, посмотрю все части.
класно ! найкрутіший вебінар, що бачив ! Лише практика !
Видео классное, много полезного углядел. Только мне постоянное сопровождение (каждый ход) в классе типа "fen" кучей методов кажется лишним, достаточно инициализироваться им при входе и сохранять его при выходе. Сохранится куча времени для логики…
Чувак, невероятно крут! Пришёл с третьего вебинара. И тема интересная. Обширная. И рассказывает как правильно мыслить, какие вопросы задавать при проектировании.
+++
120
555
И тема очень интересная, и изложение. Спасибо, очень понравилось!
Лайк за отсутствие копипасты и исходников.
1:26:00
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq — 0 1
+—————-+
8 | rnbqkbnr |
7 | pppppppp |
6 | …….. |
5 | …….. |
4 | …….. |
3 | …….. |
2 | PPPPPPPP |
1 | RNBQKBNR |
+——————+
a b c d e f g h
почему при компилировании очень маленькие расстояния между буквами, оно получается сжатое и не может произвести ход?
почему при компилировании очень маленькие расстояния между буквами, оно получается сжатое и не может произвести ход?
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq — 0 1
+—————-+
8 | rnbqkbnr |
7 | pppppppp |
6 | …….. |
5 | …….. |
4 | …….. |
3 | …….. |
2 | PPPPPPPP |
1 | RNBQKBNR |
+——————+
a b c d e f g h
Раз так 5й уже пытаюсь построчно за вами идти.. и всё безрезультатно…
бож, на 5й раз получлась первая часть.. самому с трудом верится.. осталось вторую часть выполнить и курсач готов:D спасибо за труд!
Спасибо за интересную тему! Сам думал написать нечто подобное)
Ну вот. Я так ждал когда же будет клиент-серверный код и не дождался… :-
Посоветуйте. Можно взять в качестве дипломной работы подобную тему
можно просто переименовать наш класс в библиотеке, например ClassChess и не париться:) Урок замечательный, спасибо!
О боже какой я невнимательный, сначала у меня не получалось понять почему короли не выводятся, потратил пол часа чтобы найти малюсенькую ошибку, потом потратил еще час чтобы понять почему у меня короли не двигаются, но за-то понял до мелочей код))
Отличный веб бинар. Только у меня появилась проблема, после написания ходов для коня и короля, не могу походить ни одной фигурой, в чём проблема??? помогите плиз
Будьте осторожны когда пишете деморгана на 2:01:31 там лучше оставить деморгана а то пешки перестают ходить
Ребят, подскажите, пожалуйста. После 1:26:50 при выводе всех фигур, у меня не отображается белый ферзь (Q), вместо него стоит точка. Если в строке fen вместо "Q" вставить любой другой символ, он выведется в консоле. С остальными фигурами все в порядке. В чем может быть проблема, всю голову сломал, не разобрался. Помогите.
У меня не ходят фигуры, уже 3 день голову ломаю
Автору большое спасибо, я все это переписал на с++, т.к. выбрал для изучения и программирования шахмат C++
в CanMoveFrom() нет проверки на то, что в from находится та самая фигура, которая ходит, приводит к клонированию дополнительных фигур в клетке to
Все делал как на видео, но выдает ошибку. Сначала ругался, что private поставлен в классе Moves, на всех bool Can. После того, как убрал, при второй проверке выдает пустую доску только с схоженной фигуройПроблему решал неделю, оказалось фигурные скобки поставил не в том месте!у меня былые кони могут ходить только когда очередь хода черных, какова вероятность что я сам смогу исправить эту ошибку?
Вы нам показали шахматы без правил и я понимаю что эта игра самая реалистичная, так как в реальной жизни компьютер не будет говорить куда ходить. Ты можешь тупо побить все фигуры и замечание сделает только соперник который хочет поиграть нормально
Извините, а возможно ли подключить библиотеку классов без Visual Studio?
Приветствую! Что нужно знать/изучить/посмотреть для того, чтобы понять, как сделать шахматную игру на C# и Юнити?
Спасибо! Повторил весь путь, всё получилось. Единственное для удобства, в основной программе, перед выводом fen я очищаю экран, получается некая псевдо-анимация 🙂
У кого нибудь есть исходники?
у меня не поевляется фигурки как в этом моменте 1.27.46, когда делаешь ход просто из неоткуда делаешь ход?
есть исходники шахмат на unity? чтобы я просто заменил графику на свою. Можно 2д, но лучше 3д. Желательно с мультиплеером
Спасибо
Фигуры не отображаются на доске, все делала по видео. В чем может быть проблема?
Я тоже придумал свои шахматы можете ли вы написать мои авторские шахматы? И сколько это будет стоить? Как с вами связаться?
Добрый день. Спасибо большое за урок, очень полезно и интересно. Но есть один вопрос. Писал код за вами, вроде все так же сделал, но на втором ходе ход делается и все фигуры пропадают, кроме той, которой ходил. И fen какой-то странный получается. Подскажите, пожалуйста где может быть ошибка?
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b- — 01 fen после первого хода
8/8/8/4p3/8/8/8/8 w- — 01 fen после второго хода
P.s виде пересмотрел 3 раза, так и не нашел причину
Интересный курс. Сделал все, что было в этой части, но переходить ко второй части рука не поднимается, т.к. понимаю, что еще не вся игровая логика описана в этой части.
Пока получилось только отреагировать на джамп пешки соперника и дал возможность пешке сходить на пустое поле. Осталось понять, как переработать fen для EnPassant ну и далее по списку (флаги рокировки)
if (fm.from.y == 4 || fm.from.y == 5 && CanPawnGo(stepY) && (CanFigureMove() == false))
if (board.GetFigureAt(fm.to) == Figure.none)
if (fm.AbsDeltaX == 1)
if (fm.DeltaY == stepY)
return true;
return false;