# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
3 теста |
|||
Мы начинаем создание клиент-серверной программы для игры в Шахматы по сети. Это комплекс программных решений с исользованием: C#, ASP.NET, MS-SQL, EF, Unity В результате мы создадим сервер, через который клиенты смогут играть друг с другом в шахматы со смартфона. Записаться на курс Отчёт отправил: 10558. Иван Воронин Выполнено за 12 мин. [Показать отчёт] Научился: C# - c 2011 года. Unity - суммарно около полугода. ASP.NET - пока руки не дошли, но на этом проекте курсов несколько на очереди, хотя имею представление о данной технологии. SQL - c 2003 года. EF - пока не доводилось использовать, но наслышан и курсы на данном проекте имеются. Шахматы - с детства и на данном проекте кучу курсов уже прошёл. В том числе и на вебинарах был по данной тематике для разных языков. Сложности: найти время |
|||||
2 | Доска. Установка Unity 3D |
|
|||
Цель этого урока - установить Unity и набрать несколько строчек шахматных терминов. Скачать Unity3D: unity3d.com/ru Набрать шахматные термины: videosharp.info/console/task/level=1766 Скачать архив с картинками: https://yadi.sk/d/irBRduLp3SseXY Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 14 мин. [Показать отчёт] Научился: Обновил Unity с версии 2017.1.0 до 2017.3.1 Мой результат набора запечатлён на видео, но я приложил ещё и скрин =) Сложности: найти время |
|||||
3 | Доска. Фигуры |
|
|||
На этом уроке мы разместим доску с фигурами. Отчёт отправил: 10558. Иван Воронин Выполнено за 29 мин. [Показать отчёт] Научился: Не стал трогать масштабирование, вместо этого изменил FoV у камеры. Отличный урок, идём дальше. Сложности: найти время |
|||||
4 | Доска. Состояния переноса |
|
|||
На этом уроке мы начнём процесс Drag-n-Drop и обсудим все состояния, через которые проходит объект в процессе переноса. Создадим скрипт, класс, перечисление, конструктор и метод Action. Отчёт отправил: 10558. Иван Воронин Выполнено за 16 мин. [Показать отчёт] Научился: Всё просто, идём дальше. Сложности: найти время |
|||||
5 | Доска. Подцеп фигуры |
|
|||
На этом уроке мы найдём фигуру, по которой кликнул пользователь. Отчёт отправил: 10558. Иван Воронин Выполнено за 50 мин. [Показать отчёт] Научился: Чтобы логи не бежали как сумасшедшие, использовал метод нажатия клавиши мыши, чтобы отобразилось один раз. Отобразил координаты позиции курсора мышки и конвертированные в мировые координаты. Изменил тип камеры и увеличил её размер с 5 до 11, чтобы конвертация мировых координат работала как надо. Всё отлично, идём дальше. Сложности: найти время |
|||||
6 | Доска. Смещение |
|
|||
На этом уроке мы допишем перенос фигуры и учтём смещение при клике. Теперь вы сможете разыграть любую партию - сделайте скриншот интересной позиции! Отчёт отправил: 10558. Иван Воронин Выполнено за 19 час. 41 мин. [Показать отчёт] Научился: Всё отлично, ждём продолжения. з.ы. решил отменить и добавить скрины портированной версии на планшет с Андроид. Сложности: найти время |
|||||
7 | Доска. Запуск на Windows |
|
|||
На этом уроке мы создадим независимый билд (рабочая версия) нашей игры для платформы Windows. Отчёт отправил: 10558. Иван Воронин Выполнено за 39 мин. [Показать отчёт] Научился: Всё отлично, ранее уже делал это, повторение мать учения =) з.ы. запустил на виртуалке с 7 виндой. Сложности: найти время |
|||||
8 | Доска. ПЕРВЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы закончили первую часть курса, создали шахматную доску, запустили её на Windows. Напишите отзыв о первой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 10558. Иван Воронин Выполнено за 13 мин. [Показать отчёт] Научился: Узнал о планах на будущее Сложности: ничего |
|||||
9 | Доска. VIP. Запуск на Android |
|
|||
На этом уроке мы запустим нашу доску на операционной системе Android. Приготовьте свой планшет/телефон и приступайте к эскпорту и запуску! * Выполнять этот урок не обязательно. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: Ранее уже это делал, прикрепил скрины с самого устройства. з.ы. Чтобы сделать скрин, на моём устройстве надо одновременно зажимать на пару секунд Громкость+ и Включение, возможно на вашем тоже, если нет, гуглим =) Сложности: найти время |
|||||
10 | Доска. VIP. Запуск в Интернете |
|
|||
На этом уроке мы отправим наш проект в Интернет. Для этого мы воспользуемся технологией WebGL. Генерация страницы занимает продолжительное время. Засеки момент начала и напиши в отчете сколько времени это заняло. * Выполнять этот урок необязательно. Отчёт отправил: 10558. Иван Воронин Выполнено за 11 час. 14 мин. [Показать отчёт] Научился: Всё отлично, ранее уже это делал, идём дальше. Время генерации заняло: 2 минуты и 47 секунд з.ы. залил текущую версию на хостинг, ссылка для тестирования: http://chess-online.jgp.su/ Сложности: найти время |
|||||
11 |
![]() |
1 тест |
|||
На этом уроке мы познакомимся с архитектурой проекта, посмотрим на предстоящее путешествие с высоты птичьего полёта. Задание: написать, что для вас в этом плане самое простое, а что - самое сложное. Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт] Научился: Самое сложное ждать очередной вебинар. Самое простое выполнение уроков. |
|||||
12 | Классы. Шахматная библиотека |
2 теста |
|||
На данном уроке мы начинаем создание шахматных классов на языке C#, которые позволят проверять правила игры. Для этого мы напишем библиотеку, которая сможет для любой шахматной позиции определить возможность любого хода. Отчёт отправил: 10558. Иван Воронин Выполнено за 21 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. Не зря я пилил шахматы на HTML, рад что пригодились и используются =) Сложности: успеть доделать дела и потом домой пешком в морозяку, чтобы выполнить урок. |
|||||
13 | Классы. Цветная фигура |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы рассмотри схему библиотеки dll, которая поможет нам сориентироваться в дальнейших действиях. Отчёт отправил: 10558. Иван Воронин Выполнено за 24 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. Чтобы добавить enum и т.д., надо делать это через шаблоны, см. скриншот. Сложности: найти время |
|||||
14 | Классы. Квадратная площадь |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим структуру классов с минимально необходимым кодом. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
15 | Классы. Фигурой марш! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим классы для хранения и перемещения фигур по клеткам. Отчёт отправил: 10558. Иван Воронин Выполнено за 28 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
16 | Классы. Квадратная матрица |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Board(), который будет заниматься доской и работать с FEN. Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
17 | Классы. Стой, кто идёт! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Moves(), который будет заниматься проверкой возможности хода. Отчёт отправил: 10558. Иван Воронин Выполнено за 40 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. По поводу ошибки, меня сразу смутил код, кое какой, а после того как узнал, что в классе Moves() ошибка, понял, что не зря, плюс тот факт, что был на вебинаре помог найти ошибку быстро. Поглядим, вариант её исправления в будущем уроке. Сложности: найти время |
|||||
18 | Классы. Шахматная бюрократия |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы допишем класс Chess(). Отчёт отправил: 10558. Иван Воронин Выполнено за 17 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. сократил геттер для FEN в одну строчку. Сложности: найти время |
|||||
19 | Классы. Консольная доска |
1 тест |
|||
Мы приступаем к написанию тестов для нашей библиотеки. На этом уроке мы создадим функционал для отображения доски и исправим старую ошибку копипаста. Отчёт отправил: 10558. Иван Воронин Выполнено за 29 мин. [Показать отчёт] Научился: Всё отлично, но ёлки палки, внутри цикла перебора по оси X, использовали конкатенацию, выше этого цикла уже верно сделали, на двух строчках использовали sb.Append(). Если подразумевается использование StringBuilder(), то забыть надо о конкатенации строк!!! иначе смыла нет в его использовании. Сложности: найти время |
|||||
20 | Классы. ВТОРОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы создали все основные классы нашего проекта. Твоя задача - нарисовать UML схему созданных классов. Нарисовать схему значительно проще, когда проект уже готов. Поэтому задание не сложное, но очень, очень полезное и нужное. Используй иерархическую структуру Solution Explorer в VisualStudio. Нарисовать можно от руки, либо в сервисе draw.io. Можно использовать любой другой *не автоматический* инструмент рисования. Важно сделать это самостоятельно, а не сгенерить программой! Поэтому рисуй сам. * Не забывайте потом дорисовывать схему в процессе добавления новых методов в классах. Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 32 мин. [Показать отчёт] Научился: Всё отлично, UML уже имел опыт, отразил текущую структуру библиотеки ChessRules.dll Сложности: остановить расстанавливать для более красивой композиции |
|||||
21 | Алгоритмы. Волшебные шахматы |
1 тест |
|||
Мы приступаем к написанию шахматных алгоритмов. На этом уроке мы добавил в класс Board() необходимые свойства и реализуем парсинг передаваемого FEN. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 28 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
22 | Алгоритмы. Сборка фена |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем формирование текущей позиции в формате FEN. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 37 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. везде вместо конкаттенации использовал StringBuilder() и при формировании позиций сразу в первом цикле собирал пустые клетки, хотя версия из урока выглядит красиво, но дело привычки =) Сложности: найти время |
|||||
23 | Алгоритмы. Генератор ходов |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы начинаем реализацию проверок можно ли пойти с одной клетки на другую. Отчёт отправил: 10558. Иван Воронин Выполнено за 40 мин. [Показать отчёт] Научился: Урок более чем насыщенный, отличные трансформации мыслительной деятельности. Всё супер, идём дальше. з.ы. foreach можно будет заменить на LINQ, но это уже после того, как будет устаканена библиотека и всё что надо работать как надо. Сложности: найти время |
|||||
24 | Алгоритмы. Куда идёт Король |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли King пойти с одной клетки на другую. Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
25 | Алгоритмы. Ночью с Конём |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли Knight пойти с одной клетки на другую. Отчёт отправил: 10558. Иван Воронин Выполнено за 13 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
26 | Алгоритмы. Дальнобойщики |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы переходим к дальнобойным фигурам. Отчёт отправил: 10558. Иван Воронин Выполнено за 31 мин. [Показать отчёт] Научился: Понравился общий алгоритм и атрибут Sign отлично вписывается. Всё супер, идём дальше. Сложности: найти время |
|||||
27 | Алгоритмы. Храбрая пешка |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы приступаем к реализации алгоритмов самой сложной фигуры: Pawn. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 4 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. Можно было функцию CanPawnGo() назвать CanPawnStep() выглядело бы в связке с CanPawnJump() красиво, а то получается, что Go по идее вообще означает, может ли она двигаться, а Step и Jump конкретное количество шагов (1 или 2 соответственно). а в функцию CanPawnGo() можно вынести проверку пустая ли клетка между .from и .to, что сократит громоздкость функции CanPawnJump() Сложности: найти время |
|||||
28 | Алгоритмы. Четвёртое превращение |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем превращение Pawn в одну из четырёх фигур: Queen, Knight, Bishop и Rook. Отчёт отправил: 10558. Иван Воронин Выполнено за 36 мин. [Показать отчёт] Научился: Всё отлично, решение очень красивое, так как заранее был подготовлен плацдарм, чтобы потом дописать пару строчек и вуаля =) з.ы. как видно на скриншоте, реализовал через switch, ещё отличное нововведение в новую версию C#, можно использовать несколько параметров в case =) Сложности: найти время |
|||||
29 | Алгоритмы. Рефакторинг на доске |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся рефакторингом. Отчёт отправил: 10558. Иван Воронин Выполнено за 52 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. з.ы. по поводу доступа по-умолчанию, я наоборот пишу то, что мне надо, в данном случае private, так как в Java по-умолчанию pakage-private и это не всегда приемлемо, поэтому если вдруг в C# тоже добавят что-то такое и изменят доступность по-умолчанию, то это будет не есть хорошо =) Сложности: найти время |
|||||
30 | Алгоритмы. Допрыгалась! |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся взятием пешкой на проходе. Отчёт отправил: 10558. Иван Воронин Выполнено за 50 мин. [Показать отчёт] Научился: Отличный урок, все необходимые проверки реализованы в тех местах, где это логично. з.ы. Вместо ифов реализовал через свитч с доп. параметрами Сложности: найти время |
|||||
31 | Алгоритмы. Королевский паркур |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем рокировку. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 8 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Как обычно реализовал в виде свитча, более красиво и наглядно вышло. Так же реализовал отображение возможных ходов в строчку по типу фигур. Сложности: найти время |
|||||
32 | Алгоритмы. Защита короля |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы будем защищать короля от ШАХа. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 4 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
33 | Алгоритмы. Шах и Мат! |
|
|||
Мы заканчиваем написание шахматных алгоритмов. На этом уроке мы реализуем возврат ситуации на доске. Отчёт отправил: 10558. Иван Воронин Выполнено за 32 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
34 | Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК |
|
|||
На этом уроке мы исправим одну ошибку и добавим ещё один вариант метода GetFigureAt(string xy). Ваше задание - записать подробный отзыв об алгоритмической части проекта. Отчёт отправил: 10558. Иван Воронин Выполнено за 4 мин. [Показать отчёт] Научился: Очень интересная часть с алгоритмами. Так как до этого курса уже реализовывали алгоритмы по шахматам на других языках и курсах, то проблем не возникало в очередном варианте реализации игровой логики. Отличный курс получается. Сложности: найти время |
|||||
35 | Алгоритмы. VIP. Шахматное супертестирование |
|
|||
На этом уроке мы проверим корректность ваших алгоритмов. Для этого мы прогоним супер-тест по генерации всех вариантов. * Выполнять этот урок необязательно. Ссылка: Сайт с результатами тестирования Отчёт отправил: 10558. Иван Воронин Выполнено за 11 мин. [Показать отчёт] Научился: Отличный урок, полезное тестирование, выявилась старая ошибка, когда выводили на поле пробел, после поедания фигуры, в последствии заменили на (char)Figure.None, но этот момент не доглядел и сломалась генерация FEN, что приводило к крашу, проведя немного времени в дебаге и увидев в FEN символ с кодом 32, а это и есть пробел, понял, что надо искать именно его - ' '. Нашёл, заменил и теперь FEN генерируется как надо. Сложности: найти время |
|||||
36 | Алгоритмы. VIP. Можно пройти? |
|
|||
На этом уроке мы немного порефакторим и добавим очень полезную функцию. Отчёт отправил: 10558. Иван Воронин Выполнено за 11 мин. [Показать отчёт] Научился: Всё коротко и ясно, отличный рефакторинг. Сложности: найти время |
|||||
37 | Алгоритмы. VIP. Как пройти в библиотеку |
|
|||
На этом уроке мы подготовим библиотеку ChessRules. Для этого мы скомпилируем её в необходимой версии .NET и проверим работоспособность в Unity проекте. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Отличный урок, но есть одна неточность, вначале надо скопировать библиотеку ChessRules.dll в папку Assets, а уже после надо создавать скрипты и при открытии ссылка на библиотеку будет автоматической, достаточно будет добавить юзинг. Добавил об этом к описанию урока. Сложности: найти время |
|||||
38 | Интерфейс. План действий |
|
|||
На этом уроке мы обсудим дальнейший план действий.
Отчёт отправил: 10558. Иван Воронин Выполнено за 7 час. 26 мин. [Показать отчёт] Научился: План действий ясен, потратил время на создание свой текстур для фигур, так же оттенок наложения красного поверх клеток доски сделал 15% чтобы было видно, но не слишком ярко. Так же у меня скрипт не удалился, видимо я аккуратно всё лишнее удалял. Сложности: найти время |
|||||
39 | Интерфейс. Генерация объектов |
|
|||
На этом уроке мы сгенерируем шахматную доску с базовыми объектами на ней. Отчёт отправил: 10558. Иван Воронин Выполнено за 51 мин. [Показать отчёт] Научился: Отличный урок, вот и динамическая генерация доски подоспела, кто там спрашивал на вебинаре, радуйтесь. Идём дальше. Сложности: найти время |
|||||
40 | Интерфейс. Начальная позиция |
|
|||
На этом уроке мы добавим ранее созданную библиотеку ChessRules.dll в проект на Unity. Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Всё просто и ясно. з.ы. Опять та же ошибка при подключении библиотеки, её достаточно просто кинуть в папку Assets. Простота решения и затраченное на это время обратно пропорциональны. Сложности: найти врмея |
|||||
41 | Интерфейс. Ход делегата |
|
|||
На этом уроке мы активируем проверку ходов, которую реализовали в ChessRules.dll. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Всё коротко и ясно, идём дальше. Сложности: найти время |
|||||
42 | Интерфейс. Проверка хода |
|
|||
Мы продолжаем реализацию необходимого функционала для активации проверки ходов на основе ChessRules.dll. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Всё коротко и ясно. Прекращение пешки в виде генерации доп клеток выше или ниже вектора следования пешки с установленными фигурами на выбор, так же они должны быть подсвечены другим цветом, что означало бы, что другими фигурами ходить нельзя, пока не выберешь в кого превратиться. Сложности: найти время |
|||||
43 | Интерфейс. VIP. Клетки отправления |
|
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, с которых можно ходить. Отчёт отправил: 10558. Иван Воронин Выполнено за 44 мин. [Показать отчёт] Научился: Всё коротко и ясно, отличный урок. з.ы. Решил окрасить зелёным оттенком, так как это всё же разрешённые ходы. Сложности: найти время |
|||||
44 | Интерфейс. VIP. Клетки прибытия |
1 тест |
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, на которые можно ходить. Отчёт отправил: 10558. Иван Воронин Выполнено за 23 мин. [Показать отчёт] Научился: Отличный урок, всё коротко и ясно. Идём дальше. Сложности: найти время |
|||||
45 | Интерфейс. Щепотка рефакторинга |
1 тест |
|||
На этом уроке мы начинаем подготовку к превращению пешки в одну из четырёх фигур. Для начала проведём небольшой рефакторинг. Отчёт отправил: 10558. Иван Воронин Выполнено за 45 мин. [Показать отчёт] Научился: Рефакторинг в тему, коротко и ясно, идём дальше. Сложности: найти время |
|||||
46 | Интерфейс. Выставка фигур |
|
|||
На этом уроке мы продолжаем подготовку к превращению пешки в одну из четырёх фигур. Теперь нам надо подготовить фигуры, в которые будем превращать. Отчёт отправил: 10558. Иван Воронин Выполнено за 32 мин. [Показать отчёт] Научился: Всё коротко и ясно. Реализовал вспомогательную функцию ShowPromotionFigures() через свитч. Заметил неучтённый нюанс и сразу увидел вариант рефакторинга SetSprite() и некоторых других функций. Сложности: найти время |
|||||
47 | Интерфейс. Долгожданное превращение |
|
|||
На этом уроке мы наконец превратим нашу пешку в одну из четырёх фигур. Отчёт отправил: 10558. Иван Воронин Выполнено за 37 мин. [Показать отчёт] Научился: Всё как всегда коротко и ясно. Проверку реализовал по другому, использовав функцию IsValidMove() Сложности: найти время |
|||||
48 | Интерфейс. ЧЕТВЁРТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о четвёртой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт] Научился: Вот и завершили реализацию графического интерфейса с использованием ранее созданной библиотеки с правилами игры. Теперь вполне реально играть на одном устройстве вдвоём. Отличная четвёртая часть, движемся к не менее интересным частям курса. Сложности: найти время |
|||||
49 | База данных. Management в студию! |
|
|||
На этом уроке мы приступаем к созданию БД для нашего сервера шахматы онлайн. Отчёт отправил: 10558. Иван Воронин Выполнено за 14 мин. [Показать отчёт] Научился: Да, тоже уверен, можно было обойтись, но всё познаётся в сравнении, поглядим на это чудо природы. Сложности: найти время |
|||||
50 | База данных. Планирование |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы спроектируем схему нашей БД. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Немного иначе представляю структуру БД. Это не окончательная её версия, в процессе будет дополняться. Всё отлично, идём дальше. Сложности: найти время |
|||||
51 | База данных. Упрощение |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы упростим схему нашей БД. Отчёт отправил: 10558. Иван Воронин Выполнено за 46 мин. [Показать отчёт] Научился: Альберт Эйнштейн дело говорил, поэтому упростил не проще этого. Двигаемся далее. Сложности: найти время |
|||||
52 | База данных. Созидание |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы наконец создадим нашу базу данных для онлайн шахмат. Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 39 мин. [Показать отчёт] Научился: Всё коротко и ясно. Сложности: найти время |
|||||
53 | База данных. VIP. Таблицы на вырост |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы создадим дополнительные таблицы, которые понадобятся для реализации полноценной онлайн игры. Отчёт отправил: 10558. Иван Воронин Выполнено за 40 мин. [Показать отчёт] Научился: Создал параллельно таблицы для взрослой версии, добавил необходимые ключи, индексы и т.д. Не нравятся мне эти лишние айдишники в каждой таблице, ненужная избыточность, поэтому создал структуру так, как ранее показывал на UML. Всё отлично, идём дальше. Сложности: найти время |
|||||
54 | База данных. VIP. Красивая диаграма |
|
|||
На данном уроке мы нарисуем диаграмму нашей БД.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: Мне draw.io больше понравился, всё супер, идём дальше. Сложности: найти время |
|||||
55 | База данных. ПЯТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о пятой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 10558. Иван Воронин Выполнено за 3 мин. [Показать отчёт] Научился: В целом часть по базе данных получилась интересной, состоит не просто из создание пары таблиц, а дополнительной проработки в процессе проектирования. Но для меня до сих пор MySQL это первая БД для онлайн проектов. Сложности: найти время |
|||||
56 | Сервер. Последняя версия |
|
|||
На данном уроке мы приступаем к созданию серверной части нашего онлайн проекта по шахматам. Отчёт отправил: 10558. Иван Воронин Выполнено за 32 мин. [Показать отчёт] Научился: Всё коротко и ясно, идём дальше. Сложности: найти время |
|||||
57 | Сервер. Райский Эдем - EDM |
|
|||
На этом уроке мы создадим EDM - Entity Data Model.
Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Проходили это в курсе EF, так что ничего сложного не было. Структура на основе своей минимальной БД. Сложности: найти время |
|||||
58 | Сервер. Новая игра на JSON |
|
|||
На этом уроке мы изменим формат вывода с XML на JSON.
Отчёт отправил: 10558. Иван Воронин Выполнено за 48 мин. [Показать отчёт] Научился: JSON веселее чем XML, однозначно. Не нравится, что вспомогательная функция находится в контроллере, думаю есть смысл вынести её в класс таблицы в виде конструктора или публичной функции для активации новой игры. Всё отлично, идём дальше. Сложности: найти время |
|||||
59 | Сервер. Официант без логики |
|
|||
На этом уроке мы будем упрощать наш ChessController.
Отчёт отправил: 10558. Иван Воронин Выполнено за 49 мин. [Показать отчёт] Научился: Всё коротко и ясно, идём дальше. Сложности: найти время |
|||||
60 | Сервер. Ваш ход! |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем выполнение ходов. Отчёт отправил: 10558. Иван Воронин Выполнено за 31 мин. [Показать отчёт] Научился: Как всегда всё коротко и ясно. Вариантов реализовать так, чтобы обоим игрокам отображался конец игры великое множество, но я думаю лучше это реализовать через доп. команду, которая бы означала сброс и начало новой игры. Сложности: найти время |
|||||
61 | Сервер. Шахматная Идемпотентность |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы обсудим Шахматную Идемпотентность. Напишите своими словами, что такое Идемпотентность. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Отличная идея, всё коротко и ясно, движемся дальше. Сложности: найти время |
|||||
62 | Сервер. Китайская ничья |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем завершение игры при сдаче. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 14 мин. [Показать отчёт] Научился: Как всегда всё коротко и ясно. Создал перечисление GameStatus, где на данный момент уже пять вариантов статуса игры: Play, Checkmate, Stalemate, Loss, Draw последнее при ручном запросе игрока и принятии ничьи другим игроком. Сложности: найти время |
|||||
63 | Сервер. ШЕСТОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о шестой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 10558. Иван Воронин Выполнено за 2 мин. [Показать отчёт] Научился: Отличная часть, проще просто некуда, показаны все места по настройке серверной части так как тебе необходимо. Всё супер, движемся дальше. Сложности: найти время |
|||||
64 | Хостинг. Регистрация аккаунта |
|
|||
Приступаем к размещению нашего сервера в интернете. Для этого нам потребуется Windows-хостинг с поддержкой ASP.NET Чтобы мы были на одной волне и смогли проработать всё вместе, пожалуйста зарегистрируйтесь на этом хостинг-сервисе: Ссылка для регистрации на хостинге: https://www.reg.ru/?rlink=reflink-30461 Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 46 мин. [Показать отчёт] Научился: Так как я уже давно пользуюсь данным сервисом, то регистрироваться нет необходимости, идём дальше. Сложности: найти время |
|||||
65 | Хостинг. Лучше заплатить |
|
|||
На этом уроке мы выберем план, доменное имя, укажем контактную информацию. Отчёт отправил: 10558. Иван Воронин Выполнено за 16 мин. [Показать отчёт] Научился: По поводу ошибки на 7:30 в курсе, так как уже много лет пользуюсь данным сервисом и именно их бесплатными DNS. Сложности: найти время |
|||||
66 | Хостинг. Доступ по FTP |
|
|||
На этом уроке мы установим пароль для подключения к хостингу по FTP. Напишите, какой FTP-клиент вы используете и приложите скриншот вашей FTP программы с подключением к хостингу. Отчёт отправил: 10558. Иван Воронин Выполнено за 12 мин. [Показать отчёт] Научился: Уже много лет использую FileZilla как FTP клиент, очень нравится. Всё отлично, идём дальше. Сложности: найти время |
|||||
67 | Хостинг. Публикация проекта |
|
|||
На этом уроке мы настроим публикацию проекта из Visual Studio. Выполните все шаги и опубликуйте проект. Приложите скриншот Visual Studio с логами публикации и содержимое FTP каталога после публикации. Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт] Научился: Поднял IIS + ASP.NET на своём хосте. Настроил nginx как фронтенд, а IIS как бэкенд для оптимизации работы. Опубликовал API для онлайн шахмат. Всё работает отлично, идём дальше. адрес сайта: http://chess-online.jgp.su/api/Versions Сложности: найти время |
|||||
68 | Хостинг. Перенос базы данных |
|
|||
На этом уроке мы перенесём базу данных на сервер и подключимся к ней из скрипта. Отчёт отправил: 10558. Иван Воронин Выполнено за 21 мин. [Показать отчёт] Научился: Так как реализовывал с LocalDb версией MSSQL и на собственном хосте развернул IIS + ASP.NET, то не пришлось заморачиваться с настройкой строки подключения, локальная БД хранится в App Data папке проекта, настройки подключения подошли теже, что были в студии. Всё работает идеально, сделал ход, как видно на скрине, он отработал. http://chess-online.jgp.su/api/Chess/4/ Можно поиграть через адресную строчку =) Сложности: найти время |
|||||
69 | Хостинг. VIP. Двойные стандарты |
|
|||
На этом уроке мы обсудим нюансы с публикацией очередной версии серверной части на хостинге. Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Так как я ранее уже говорил, что использовал LocalDb, так же использовал относительный путь где лежит файл БД, то данной проблемы у меня не возникало по причине идеальной совместимости строки подключения как в студии так и на хосте. Урок в любом случае отличный, пригодится, когда будет использоваться именно MS SQL Server. Сложности: найти время |
|||||
70 | Хостинг. СЕДЬМОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
В этой части мы разместили сервер не хостинге. Шахматная серверная программа нашла пристанище в интернете. Наконец-таки можно будет переходить к игре по сети. Напишите в отчёте, всё ли получилось и по какому адресу можно найти ваш серверный API. Отчёт отправил: 10558. Иван Воронин Выполнено за 7 мин. [Показать отчёт] Научился: Хорошая часть по поводу хостинга, показано всё, что необходимо для публикации проекта в сети интернет. Так как подобными вещами приходится заниматься часто и уже на протяжении многих лет, то ничего нового для себя ну знал, поэтому реализовал всё иначе и получил интересный опыт. Всё отлично, идём дальше, к последней части и VIP урокам по рефакторингу. Сложности: найти время |
|||||
71 | Клиент. Достучаться до облака |
|
|||
На этом уроке мы приступаем к завершающему этапу по созданию клиент-серверной игры "Онлайн шахматы". Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 6 мин. [Показать отчёт] Научился: Подключил SSL сертификат, чтобы можно было работать через https. Выделить фен лучше всего через парсинг json в объект(создание класса структуры json ответа) и обращение к атрибуту fen. Всё отлично, идём дальше. Сложности: найти время |
|||||
72 | Клиент. Дедовские методы |
|
|||
На этом уроке мы выделим FEN из полученной json строки.
Отчёт отправил: 10558. Иван Воронин Выполнено за 49 мин. [Показать отчёт] Научился: Реализовал дополнительную dll для реализации функционала клиента. Использовал NewtonJson для обработки получаемой json сроки в объект и дальнейшее его использование. см. скриншот return api.fen; В этом случае проблем в юньке не должно быть. Сложности: найти время |
|||||
73 | Клиент. Ход в мешке |
|
|||
На этом уроке мы научимся отправлять на сервер наш ход.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: Так как использовал NewtonJson, то большую часть видео просто просмотрел, добавил пару строчек кода, чтобы заработала возможность играть используя наш сервер. Всё отлично, идём дальше. Сложности: найти время |
|||||
74 | Клиент. Серверные пешки |
|
|||
На этом уроке мы используем ранее созданный класс Client() в наш проект на Unity, чтобы можно было поиграть с GUI. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Проблем с NewtonJson не возникло при использовании класса Client() через dll. Проблему с https решил, настроив протоколы SSL на своём хосте и дописав поддержку протоколов на стороне клиента. Всё отлично, идём дальше. з.ы. я не мог оставить такую огромную дырку в безопасности, поэтому пришлось потратить немного времени на исследование и доработку по данному вопросу. Сложности: найти время |
|||||
75 | Клиент. Следы невиданных ходов |
|
|||
На этом уроке мы реализуем отправку хода через GUI.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 21 мин. [Показать отчёт] Научился: Исправил недоработку проверки возможности хода из-за которой можно было плодить пешки срезая чужие на проходе из пустоты. Всё отлично, идём дальше. Сложности: найти время |
|||||
76 | Клиент. Фоновое обновление |
|
|||
На этом уроке мы реализуем функцию обновления текущего состояния на доске. Отчёт отправил: 10558. Иван Воронин Выполнено за 3 час. 26 мин. [Показать отчёт] Научился: Реализовал ожидание после окончания игры, чтобы можно было посмотреть чем партия закончилась и не сбросилось поле. Чтобы начать новую игру достаточно перезапустить клиент. Как видно из json возвращает статус = 1, это по ранее описанному перечислению как раз CheckMate. Играл на ПК и планшете с Android, всё супер. Сложности: найти время |
|||||
77 |
![]() |
|
|||
Поздравляю вас с завершением нашего эпического курса по созданию клиент-серверной игры в шахматы по сети! Запишите живое видео, где будет видно, что в игру можно поиграть с двух разных устройств/компьютеров. Расскажите на видео о своём подвиге. Чем курс понравился, что было сложно, что было интересно, что можно будет добавить. Отчёт отправил: 10558. Иван Воронин Выполнено за 7 мин. [Показать отчёт] Научился: Бомбовый курс, один их флагманов данного проекта, советую абсолютно всем, кто заинтересован в понимании создании онлайн проекта с нуля и до финального состояния. Внедрил системы поиска противника, ожидание начала игра. Как только нашлись двое желающих, игра начинается. Добавил поддержку звуковых эффектов и музыки, так же возможность их отключать/включать. Добавил меню для настройки пользователя, которым хотите играть, каждый пользователь имеет уникальный идентификатор. Добавлена поддержка параллельных игр разными пользователями. Добавлена поддержка https протокола, безопасность не бывает лишней. Удачного просмотра видео. Сложности: найти время Видеообзор: Lae60RxO9gc |
|||||
78 | Рефакторинг. С чего начать? |
|
|||
На этом уроке мы начинаем рефакторинг кода клиентской части на Unity. Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Во время рефакторинга как минимум надо разделить код по логике: рендеры, работа со звуком, работа с меню и т.д. по отдельным файлам/классам. Начало положено, идём дальше. Сложности: найти время |
|||||
79 | Рефакторинг. Координатные трансформации |
|
|||
На этом уроке мы продолжаем рефакторинг и сейчас мы выделим статические элементы. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 6 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
80 | Рефакторинг. Чёрный ящик |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы займёмся словарями. Отчёт отправил: 10558. Иван Воронин Выполнено за 59 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
81 | Рефакторинг. Интерфейсная прослойка |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим интерфейс ICreatable. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 13 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
82 | Рефакторинг. Ящик с фигурами |
1 тест |
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы сделаем класс Box() абстрактным. Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
83 | Рефакторинг. Многоклеточная сущность |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxSquares(). Отчёт отправил: 10558. Иван Воронин Выполнено за 19 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
84 | Рефакторинг. Вынос переноса |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetPosition(). Отчёт отправил: 10558. Иван Воронин Выполнено за 23 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
85 | Рефакторинг. Спрайт, не дай себя заинтерфейсить |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetSpriteAt(). Отчёт отправил: 10558. Иван Воронин Выполнено за 17 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
86 | Рефакторинг. Клетка в клетке |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём и разделим класс ShowSquare(). Отчёт отправил: 10558. Иван Воронин Выполнено за 21 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
87 | Рефакторинг. Шахматная независимость |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём некоторые функции в класс BoxSquares(). Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Так как в данном уроке код пересекается с собственными доработками, то так же передаю нужно ли помечать клетки или нет, после того как было снята пометка со всех клеток, к примеру: не ваш ход или игра ещё не началась, поиск соперника и т.д. Всё отлично, идём дальше. Сложности: найти время |
|||||
88 | Рефакторинг. Хоровод из четырёх фигур |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы порефакторим функционал превращения пешки. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 58 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
89 | Рефакторинг. Волшебник изумрудного ящика |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxPromots(). Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
90 | Рефакторинг. Потерянная пешка |
|
|||
На этом уроке мы вернёмся к нашей библиотеке для исправления старой ошибки: пешка может превратиться в чужую фигуру ил остаться пешкой. Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 10 мин. [Показать отчёт] Научился: Урок конечно длинный, не привычно после череды коротких, но зато эпичный, отлично показаны будни отлавливания багов и обдумывание их решений. Всё отлично, идём дальше. Сложности: найти время |
|||||
91 | Рефакторинг. Класс шахматной игры |
|
|||
ЭТОТ УРОК НУЖНО ПЕРЕЗАПИСАТЬ. ДЛЯ ЭТОГО МНЕ НУЖЕН ПРОЕКТ ДО ЕГО ВЫПОЛНЕНИЯ. ПОЖАЛУЙСТА ПЕРЕД ВЫПОЛНЕНИЕМ ЭТОГО УРОКА СОЗДАЙТЕ АРХИВ ПРОЕКТА И ПРИШЛИТЕ ЕГО МНЕ. Мы на финишной прямой нашего рефакторинга. На данном уроке мы вынесем логику игры в отдельный класс Game(). Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 16 мин. [Показать отчёт] Научился: Так как уроки по рефакторингу были записаны перед тем как разработали функционал игры по сети, а один из уроков был перенесён выше, то в этом уроке немало не стыковок по коду с тем, что имеем на текущий момент. Поэтому добавил к описанию информацию по этому поводу для тех, у кого не очень много опыта и могут запутаться в коде. В любом случае, для тех, кто владеет ситуацией и достаточно опытен, что понимает то, что происходит на экране, без труда справится с задачей, особенно если имеются собственные наработки. Всё отлично, идём дальше. Сложности: найти время |
|||||
92 | Рефакторинг. Двухэтажное превращение |
|
|||
Мы всё ближе и ближе к финишу нашего рефакторинга. На данном уроке мы вынесем оставшуюся логику игры в класс Game(). Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 22 мин. [Показать отчёт] Научился: Так как уже давно поддержка сети и помимо этого множество свои доработаток, функции, которые необходимо было реализовать в уроке у меня выглядят чуток иначе. Отличный урок для проверки своих навыков по рефакторингу того, что у тебя может отличаться кардинально, добавил по этому поводу комментарий к уроку. Всё отлично, идём дальше. Сложности: найти время |
|||||
93 | Рефакторинг. Финальное причёсывание |
|
|||
Мы поздравляем тебя с завершением рефакторинга. На данном уроке мы причешем наши скрипты. Отчёт отправил: 10558. Иван Воронин Выполнено за 40 мин. [Показать отчёт] Научился: Всё отлично, идём дальше. Сложности: найти время |
|||||
94 | Рефакторинг. Последний аккорд |
|
|||
На этом уроке мы заканчиваем наш эпический курс. Получилось здорово. Я доволен результатом. Надеюсь, вы тоже. Мы проделали огромную работу. Каждый стал чуточку умнее и опытнее. Отчёт отправил: 10558. Иван Воронин Выполнено за 41 мин. [Показать отчёт] Научился: Очень объёмный курс как по количеству уроков, так и по количеству затрагиваемых технологий. Курс однозначно не для новичков, советую для начала прокачать навыки по C# как минимум, потом уже браться за данный курс, тут очень много подводных камней, особенно к концу курса, зато если вы его пройдёте, получить отличный опыт. Всем спасибо и удачи. з.ы. по поводу данного урока, это всё было проделано ещё к финальному уроку, поэтому просто посмотрел. Кстати, там же ещё добавить надо проверку на стадию выбора повышения пешки, пока не выбрал в кого превратиться, чтобы тоже ничего не перерисовывало. Сложности: найти время |
|||||
95 | VIP. Меню DimanDOSа |
|
|||
1. Создание и размещение кнопки вызова меню и панели с кнопками. 2. Программирование действий по нажатиям кнопок - создание функций и привязка их к событиям нажатия. Отчёт отправил: 10558. Иван Воронин Выполнено за 27 мин. [Показать отчёт] Научился: Так как меню добавил уже давно, доработки для видео-отчёта к финальному уроку https://www.videosharp.info/10558/checking/chess3=2004 Поэтому данное видео просто посмотрел, молодец, Дим, продолжай в том же духе =) з.ы. Замечательный курс, всем советую, отличный опыт и практика, дальше завершение начатых курсов. Сложности: найти время Видеообзор: Lae60RxO9gc |
|||||
Итого: 95 видеоуроков |
17 час. 04 мин. 18 тестов |
19 чел. | |||
Финалисты: Дмитрий, Yefim, Tekashnik, Иван Воронин, ser2018, Алексей, Дмитрий Б, alklokov, FireWolf, Andrew, Max, Новопашин Владимир, Красимир Зорбов, Антон, Евгений, Anatoli, Freud, Алена, MaxB . |