# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
3 теста |
|||
Мы начинаем создание клиент-серверной программы для игры в Шахматы по сети. Это комплекс программных решений с исользованием: C#, ASP.NET, MS-SQL, EF, Unity В результате мы создадим сервер, через который клиенты смогут играть друг с другом в шахматы со смартфона. Записаться на курс Отчёт отправил: 4814. Дмитрий Выполнено за 19 мин. [Показать отчёт] Научился: На курс подписался сразу. Очень вовремя мне пригодился дочерний курс "Микрошахматы" на javascript, т.к. именно сейчас интенсивно изучаю javascript/html/css для связки C#(сервер)/JS(клиент). Сложности: Вызывает некоторые сомнения целесообразность изучения Unity. Допустим, изучать такой замечательный язык как actionscript смысла нет, т.к. Adobe забило на него, и в результате он просто умер и уже не поддерживается браузерами. Сейчас большинство браузеров отказалось от поддержки Unity, а сами разработчики официально заявили о прекращении дальнейшей разработки и поддержке Unity Webplayer. Стоит ли в таком случае вообще приступать именно к изучению Unity "с нуля" и делать на него ставку? |
|||||
2 | Доска. Установка Unity 3D |
|
|||
Цель этого урока - установить Unity и набрать несколько строчек шахматных терминов. Скачать Unity3D: unity3d.com/ru Набрать шахматные термины: videosharp.info/console/task/level=1766 Скачать архив с картинками: https://yadi.sk/d/irBRduLp3SseXY Отчёт отправил: 4814. Дмитрий Выполнено за 22 час. 41 мин. [Показать отчёт] Научился: Установил Unity Сложности: Все отлично. |
|||||
3 | Доска. Фигуры |
|
|||
На этом уроке мы разместим доску с фигурами. Отчёт отправил: 4814. Дмитрий Выполнено за 56 мин. [Показать отчёт] Научился: Первое знакомство с Unity. Сложности: Фигуры не слушались при перетаскивании на доску, не хотели располагаться в одной директории ChessBoard, создавали собственные вложения. Все нормально. |
|||||
4 | Доска. Состояния переноса |
|
|||
На этом уроке мы начнём процесс Drag-n-Drop и обсудим все состояния, через которые проходит объект в процессе переноса. Создадим скрипт, класс, перечисление, конструктор и метод Action. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 32 мин. [Показать отчёт] Научился: Создали класс для реализации переноса фигур, сделали заглушку для функций. Сложности: Все понятно. |
|||||
5 | Доска. Подцеп фигуры |
|
|||
На этом уроке мы найдём фигуру, по которой кликнул пользователь. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 11 мин. [Показать отчёт] Научился: Стали использовать много новых незнакомых функций Vector2, Camera, Transform, RayCastHit2D. Сложности: Не удалось подцепить фигуры, хотя сборка прошла успешно. Буду разбираться по ходу. |
|||||
6 | Доска. Смещение |
|
|||
На этом уроке мы допишем перенос фигуры и учтём смещение при клике. Теперь вы сможете разыграть любую партию - сделайте скриншот интересной позиции! Отчёт отправил: 4814. Дмитрий Выполнено за 20 мин. [Показать отчёт] Научился: Реализовали функцию переноса фигур. Сложности: Хм. Множество новых функций и команд, поэтому в большей степени выглядит как шаманство. Придется читать про все использованные команды. Но фигуры-то перемещаются. |
|||||
7 | Доска. Запуск на Windows |
|
|||
На этом уроке мы создадим независимый билд (рабочая версия) нашей игры для платформы Windows. Отчёт отправил: 4814. Дмитрий Выполнено за 17 мин. [Показать отчёт] Научился: Шаманство! Но все работает. Сложности: Все четко. |
|||||
8 | Доска. ПЕРВЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы закончили первую часть курса, создали шахматную доску, запустили её на Windows. Напишите отзыв о первой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4814. Дмитрий Выполнено за 1 мин. [Показать отчёт] Научился: Очень интересно. Сложности: Все новое. |
|||||
9 | Доска. VIP. Запуск на Android |
|
|||
На этом уроке мы запустим нашу доску на операционной системе Android. Приготовьте свой планшет/телефон и приступайте к эскпорту и запуску! * Выполнять этот урок не обязательно. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 5 мин. [Показать отчёт] Научился: Внимательно посмотрел и послушал! Сложности: В настоящий момент смартфон с Android не используется в качестве рабочего устройства, но в дальнейшем при решении задачи о кросс-платформенности будущей игры обязательно займусь этим вопросом. |
|||||
10 | Доска. VIP. Запуск в Интернете |
|
|||
На этом уроке мы отправим наш проект в Интернет. Для этого мы воспользуемся технологией WebGL. Генерация страницы занимает продолжительное время. Засеки момент начала и напиши в отчете сколько времени это заняло. * Выполнять этот урок необязательно. Отчёт отправил: 4814. Дмитрий Выполнено за 1 день 22 час. 31 мин. [Показать отчёт] Научился: Очень интересует платформа WebGL, особенно, для продвижения игры. Сложности: 1. Проблемы возникли сначала из-за того, что путь содержал русские буквы. Переименовал директорию. 2. При построении Unity WebGL по умолчанию выводится Board в окне "Scenes In Build". Если поставить галочку, то проект построится, но не запустится в браузере. Галочку ставить нельзя! |
|||||
11 |
![]() |
1 тест |
|||
На этом уроке мы познакомимся с архитектурой проекта, посмотрим на предстоящее путешествие с высоты птичьего полёта. Задание: написать, что для вас в этом плане самое простое, а что - самое сложное. Отчёт отправил: 4814. Дмитрий Выполнено за 18 час. 7 мин. [Показать отчёт] Научился: Для меня практически все новое, так что делить на простое/сложное не буду. Что касается МЖП, то для меня это аналог создания прототипа игры, где достаточно реализовать минимальный функционал, чтобы заинтересовать и убедить напарников, отвечающих за графику/музыку/дизайн, а также тестеров. Для моих целей именно сейчас необходимо изучение клиент-серверных технологий, а также javascript/html/css для клиента, так что Микрошахматы - это то, что нужно прямо здесь и сейчас. Ну и остальные технологии и курсы не помешают. |
|||||
12 | Классы. Шахматная библиотека |
2 теста |
|||
На данном уроке мы начинаем создание шахматных классов на языке C#, которые позволят проверять правила игры. Для этого мы напишем библиотеку, которая сможет для любой шахматной позиции определить возможность любого хода. Отчёт отправил: 4814. Дмитрий Выполнено за 37 мин. [Показать отчёт] Научился: Узнал про Class Library и возможности подключения классов к загружаемым проектам. Видимо, нам потребуется класс фигур figures, класс canMove с проверкой возможности ходить для каждой фигур, enum со статусом состояний - (none, check, stalemate, checkmate). Сложности: Все понятно и очень интересно как это будет реализовано на C#. На javascript "Микрошахматы" разбиение на классы не использовалось. |
|||||
13 | Классы. Цветная фигура |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы рассмотри схему библиотеки dll, которая поможет нам сориентироваться в дальнейших действиях. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 31 мин. [Показать отчёт] Научился: Создали перечисления Figure со всеми возможными фигурами белого и черного цвета и Color, а также класс ColorMethods и функцию для реализации в будущем передачи хода. Сложности: Все понятно. |
|||||
14 | Классы. Квадратная площадь |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим структуру классов с минимально необходимым кодом. Отчёт отправил: 4814. Дмитрий Выполнено за 4 час. 21 мин. [Показать отчёт] Научился: Создали структуру Square, добавили проверку нахождения клеток внутри доски, реализовали возможность перевода координат клеток из цифрового значения [1, 1] в строчное ("b2") и обратно, протестировали работу программы. Сложности: Сложно запомнить и структурировать все в голове. |
|||||
15 | Классы. Фигурой марш! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим классы для хранения и перемещения фигур по клеткам. Отчёт отправил: 4814. Дмитрий Выполнено за 24 мин. [Показать отчёт] Научился: Подготовили классы для реализации определения фигур на клетках и их перемещения. Сложности: Все знакомо по курсу "Микрошахматы" на javascript, но реализуется по-другому, в отдельных классах. |
|||||
16 | Классы. Квадратная матрица |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Board(), который будет заниматься доской и работать с FEN. Отчёт отправил: 4814. Дмитрий Выполнено за 18 мин. [Показать отчёт] Научился: Создали класс Board, провели подготовительную работу для реализации функций определения фигур на клетках и их перемещения. Сложности: Хорошо, что все функции знакомы и понятны по "Микрошахматам", плохо, что это не помогает сообразить что делать-то дальше и как все это построить и связать в целом. |
|||||
17 | Классы. Стой, кто идёт! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Moves(), который будет заниматься проверкой возможности хода. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 7 мин. [Показать отчёт] Научился: Создали новый класс Moves, добавили булевую функцию CanMove (может ли ходить эта фигура) с 2 подфункциями (CanMoveFrom - "с клетки" и CanMoveTo - "на клетку"), а также добавили статический класс FigureMethods, определяющий цвет фигуры. Сложности: Не удалось найти ошибку в классе Moves, но не очень нравится строка fm.figure.GetColor() != board.moveColor. Возможно, недостаточно определить то, что цвет фигуры на клетке, с которой ходим, должен не совпадать с цветом клетки, на которую ходим. Возможно, нужно отдельно проверять на клетке, куда идем, пустую клетку и чужую фигуру. Побродил между классами Board, Color, FigureMethods и Moves и их функциями определения цвета фигуры и заблудился. Открыл функцию "Can_move_to" на "Микрошахматах", но там проверка реализована иначе. Но в них идут отдельные проверки на пустую клетку и на различие значений функций get_color и move_color. |
|||||
18 | Классы. Шахматная бюрократия |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы допишем класс Chess(). Отчёт отправил: 4814. Дмитрий Выполнено за 17 мин. [Показать отчёт] Научился: Дополнили класс Chess, создали конструктор Chess, модифицировали функции Move и GetFigureAt. Сложности: Сложно не запутаться во всех классах и их методах. |
|||||
19 | Классы. Консольная доска |
1 тест |
|||
Мы приступаем к написанию тестов для нашей библиотеки. На этом уроке мы создадим функционал для отображения доски и исправим старую ошибку копипаста. Отчёт отправил: 4814. Дмитрий Выполнено за 15 час. 11 мин. [Показать отчёт] Научился: Дополнили пространство ChessDemo, создали и доработали функцию ChessToAscii перевода фигур в Ascii-кодировку, раскрасили доску с помощью функции Print. Сложности: Программа уже объемная и сложная, поэтому все понятно в отдельных деталях, но в целом ориентироваться сложно, т.к. используется много всего. Самая простая фигура для реализации - конь, самая сложная - пешка. |
|||||
20 | Классы. ВТОРОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы создали все основные классы нашего проекта. Твоя задача - нарисовать UML схему созданных классов. Нарисовать схему значительно проще, когда проект уже готов. Поэтому задание не сложное, но очень, очень полезное и нужное. Используй иерархическую структуру Solution Explorer в VisualStudio. Нарисовать можно от руки, либо в сервисе draw.io. Можно использовать любой другой *не автоматический* инструмент рисования. Важно сделать это самостоятельно, а не сгенерить программой! Поэтому рисуй сам. * Не забывайте потом дорисовывать схему в процессе добавления новых методов в классах. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 33 мин. [Показать отчёт] Научился: Познакомился с UML схемами. Построил схему классов/функций. Сложности: Draw.io не понравился, т.к. сами по себе формы рисует хорошо, а вот с текстом выглядит не очень. Excel лучше. |
|||||
21 | Алгоритмы. Волшебные шахматы |
1 тест |
|||
Мы приступаем к написанию шахматных алгоритмов. На этом уроке мы добавил в класс Board() необходимые свойства и реализуем парсинг передаваемого FEN. Отчёт отправил: 4814. Дмитрий Выполнено за 1 день 6 мин. [Показать отчёт] Научился: Посмотрели фильму, отсплитили и отпарсили строку fen и наполнили класс Board вспомогательными функциями, инициализирующими различные свойства. Сложности: По отдельности все понятно. |
|||||
22 | Алгоритмы. Сборка фена |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем формирование текущей позиции в формате FEN. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 11 мин. [Показать отчёт] Научился: Реализовали функцию GenerateFEN, обновляющую FEN-строку и доску после каждого хода. Реализовали вспомогательные функции, обеспечивающие "сборку" обновленной строки FEN. Сложности: По отдельности все понятно. И красиво. |
|||||
23 | Алгоритмы. Генератор ходов |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы начинаем реализацию проверок можно ли пойти с одной клетки на другую. Отчёт отправил: 4814. Дмитрий Выполнено за 19 час. 6 мин. [Показать отчёт] Научился: Знакомство с Yield. Написание функций YieldValidMoves (класс Chess), YieldMyFigureOnSquares (класс Board), YieldBoardSquares (класс Square), ссылающихся друг на друга и обеспечивающих выборку всех возможных ходов для игрока, который сейчас ходит. Переопределение под свои задачи стандартной функции ToString. Сложности: Ново, сложно и интересно. |
|||||
24 | Алгоритмы. Куда идёт Король |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли King пойти с одной клетки на другую. Отчёт отправил: 4814. Дмитрий Выполнено за 36 мин. [Показать отчёт] Научился: Доработали функцию CanMove, добавив к проверке клетки, с которой ходит фигура, (CanMoveFrom) и клетки, на которую хочет пойти, (CanMoveTo) проверку допустимости возможных ходов для фигуры (CanFigureMove). Вынесли из класса Moves в класс FigureMoving переменные DeltaX/Y и AbsDeltaX/Y. Сделали проверку корректности ходов для королей и коней. Сложности: Все просто, в т.ч. и потому, что эти алгоритмы использовались в "Микрошахматах". При этом использование классов позволяет сделать код более читабельным и наглядным. |
|||||
25 | Алгоритмы. Ночью с Конём |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли Knight пойти с одной клетки на другую. Отчёт отправил: 4814. Дмитрий Выполнено за 7 мин. [Показать отчёт] Научился: Реализовали функцию перемещения коней CanKnightMove. Все отлично. Сложности: Все понятно. |
|||||
26 | Алгоритмы. Дальнобойщики |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы переходим к дальнобойным фигурам. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 56 мин. [Показать отчёт] Научился: Реализовали функцию перемещения для ферзей, тур и офицеров. Интересно сравнивать реализацию с "Микрошахматами". Во-первых, используются классы, во-вторых, более изящные решения, уже, по сути, 1 функцией задаются правила для 3 разных фигур. Сложности: Все понятно и интересно. |
|||||
27 | Алгоритмы. Храбрая пешка |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы приступаем к реализации алгоритмов самой сложной фигуры: Pawn. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 14 мин. [Показать отчёт] Научился: Реализовали основную часть передвижения пешек. Интересно сравнивать с реализацией в "Микрошахматах". Сложности: Все понятно. |
|||||
28 | Алгоритмы. Четвёртое превращение |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем превращение Pawn в одну из четырёх фигур: Queen, Knight, Bishop и Rook. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 13 мин. [Показать отчёт] Научился: Доработали функции и реализовали возможность превращения пешек в 1 из 4 фигур по достижении последней линии. Сложности: Очень интересное ключевое слово yield для итератора. |
|||||
29 | Алгоритмы. Рефакторинг на доске |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся рефакторингом. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 57 мин. [Показать отчёт] Научился: Создали производный класс NextBoard, чтобы избавить Board от методов, меняющих содержимое. Провели рефакторинг. Сложности: Рефакторинг, с одной стороны, это хорошо и интересно. С другой стороны, есть риск ошибки при переносе, а также нарушается уже привычная последовательность и взаимосвязь функций, что вызывает легкую панику. |
|||||
30 | Алгоритмы. Допрыгалась! |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся взятием пешкой на проходе. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 29 мин. [Показать отчёт] Научился: Добавили функции определения наличия состояния битого поля SetEnpassant и взятие пешкой пешки другого цвета на проходе и удаление битой пешки DropEnpassant. Провели рефакторинг. Сложности: Все понятно. |
|||||
31 | Алгоритмы. Королевский паркур |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем рокировку. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 23 мин. [Показать отчёт] Научился: Реализовали функцию рокировки. Интересно было сравнивать с реализацией в "Микрошахматах". Сложности: Все понятно. |
|||||
32 | Алгоритмы. Защита короля |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы будем защищать короля от ШАХа. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 28 мин. [Показать отчёт] Научился: Реализовали функции проверки на шах IsCheck и проверки возможных корректных ходов после шаха. Сложности: Концепция "пустой фигуры", которой не существует, ходит ниоткуда в никуда и ни во что не превращается. |
|||||
33 | Алгоритмы. Шах и Мат! |
|
|||
Мы заканчиваем написание шахматных алгоритмов. На этом уроке мы реализуем возврат ситуации на доске. Отчёт отправил: 4814. Дмитрий Выполнено за 28 мин. [Показать отчёт] Научился: Реализовали функции шаха, мата, пата, добавили флаги. Сложности: Интересный способ проверки наличия ходов с использованием YieldValidMove. |
|||||
34 | Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК |
|
|||
На этом уроке мы исправим одну ошибку и добавим ещё один вариант метода GetFigureAt(string xy). Ваше задание - записать подробный отзыв об алгоритмической части проекта. Отчёт отправил: 4814. Дмитрий Выполнено за 44 мин. [Показать отчёт] Научился: Дополнили функцию Chess Move запретом хода под шах, а также сделали перегрузку метода GetFigureAt, позволив задавать координаты клетки не только в виде [x][y], но и строковой переменной в виде "g2". Сложности: Реализацию алгоритмов постоянно сравнивал с реализацией в курсе "Микрошахматы". На джаваскрипт все функции были реализованы последовательно, без применения классов, в основном, через связку условного оператора "if-else" c булевыми переменными. "Рулонный" вариант реализации кода, т.е., весь код идет непрерывно и последовательно, т.е. процедурное программирование. В случае "Клиент-серверных шахмат" мы уже задействовали десяток классов, где весь код разделили на логические блоки, в каждом из которых реализуем только определенную часть - параметры самой доски, цвет, все возможные фигуры, правила передвижения каждой из фигур и т.п. В данном случае это уже пример полноценного применения объектно-ориентированного программирования, при котором весь код разбивается на удобные логические блоки, имеет четкую иерархию классов и понятную структуру. При этом код становится более читабельным, и мы имеем возможность в любой момент дорабатывать и дополнять любой из блоков, без необходимости просмотра всего объема кода. Планирую использовать существующую модель структурирования и иерархии классов в качестве образца при создании своей игры. |
|||||
35 | Алгоритмы. VIP. Шахматное супертестирование |
|
|||
На этом уроке мы проверим корректность ваших алгоритмов. Для этого мы прогоним супер-тест по генерации всех вариантов. * Выполнять этот урок необязательно. Ссылка: Сайт с результатами тестирования Отчёт отправил: 4814. Дмитрий Выполнено за 29 мин. [Показать отчёт] Научился: Очень интересный сайт, благодаря которому можно убедиться в полноте и правильности написанных "Шахмат". Сложности: Все понятно. Но требуется слишком много времени на полноценное тестирование. |
|||||
36 | Алгоритмы. VIP. Можно пройти? |
|
|||
На этом уроке мы немного порефакторим и добавим очень полезную функцию. Отчёт отправил: 4814. Дмитрий Выполнено за 16 мин. [Показать отчёт] Научился: Провели рефакторинг функции Chess Move, разделив ее на 2 части - проверку корректности и возможности хода и сам ход с созданием нового состояния доски и фигур. Сложности: Все понятно. |
|||||
37 | Алгоритмы. VIP. Как пройти в библиотеку |
|
|||
На этом уроке мы подготовим библиотеку ChessRules. Для этого мы скомпилируем её в необходимой версии .NET и проверим работоспособность в Unity проекте. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 57 мин. [Показать отчёт] Научился: Научился подключать библиотеку C# к Unity проекту. Сложности: При смене версии на .NET Framework 3.5 вылетело множество ошибок, которые напугали. Но это всего лишь неиспользуемые using. |
|||||
38 | Интерфейс. План действий |
|
|||
На этом уроке мы обсудим дальнейший план действий.
Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 20 мин. [Показать отчёт] Научился: Все лишнее удалено, фигуры подготовлены. Сложности: В базовом архиве текстур для белых и черных клеток нет, и пока что непонятны их исходные параметры, поэтому сходу сделать не получится. Разберемся по ходу. |
|||||
39 | Интерфейс. Генерация объектов |
|
|||
На этом уроке мы сгенерируем шахматную доску с базовыми объектами на ней. Отчёт отправил: 4814. Дмитрий Выполнено за 7 час. 45 мин. [Показать отчёт] Научился: Продолжили знакомство с Unity. Создали доску 8х8, раскрасили ее в черно-белый цвет, добавили фигуры. Сложности: Сложность в том, что незнаком со многими понятиями - ассоциативный массив Dictionary, GameObject и т.п. Учимся на ходу. |
|||||
40 | Интерфейс. Начальная позиция |
|
|||
На этом уроке мы добавим ранее созданную библиотеку ChessRules.dll в проект на Unity. Отчёт отправил: 4814. Дмитрий Выполнено за 36 мин. [Показать отчёт] Научился: Добавили библиотеку ChessRules.dll, связали функциональность фигур, созданную в VS, со спрайтами Unity. Сложности: Сложность только в недостатке базовых знаний. А по уроку - все понятно. |
|||||
41 | Интерфейс. Ход делегата |
|
|||
На этом уроке мы активируем проверку ходов, которую реализовали в ChessRules.dll. Отчёт отправил: 4814. Дмитрий Выполнено за 53 мин. [Показать отчёт] Научился: Переработали функции, связанные с операцией "Тащи и бросай". Создали делегат для вызова функции из другого класса. Добавили переменные, фиксирующие стартовую и финишную позиции фигуры при переносе. Сложности: Все отлично. |
|||||
42 | Интерфейс. Проверка хода |
|
|||
Мы продолжаем реализацию необходимого функционала для активации проверки ходов на основе ChessRules.dll. Отчёт отправил: 4814. Дмитрий Выполнено за 30 мин. [Показать отчёт] Научился: Реализовали функцию VectorToSquare, чтобы привести координаты клеток к целым числам. А также преобразовали представление координат клеток из вида [0][0] в строковое значение вида "a1". Реализовали функцию передвижения фигур. Сложности: Все удивительно, но замечательно. |
|||||
43 | Интерфейс. VIP. Клетки отправления |
|
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, с которых можно ходить. Отчёт отправил: 4814. Дмитрий Выполнено за 45 мин. [Показать отчёт] Научился: Реализовали подсветку клеток с фигурами, которыми можно ходить. Написали функции MarkSquareFrom/UnmarkSquare, ShowSquare. Сложности: Все понятно. |
|||||
44 | Интерфейс. VIP. Клетки прибытия |
1 тест |
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, на которые можно ходить. Отчёт отправил: 4814. Дмитрий Выполнено за 26 мин. [Показать отчёт] Научился: Реализовали подсветку клеток, на которые может идти схваченная нами фигура. Написали функции MarkSquareTo, PickObject c делегатом. Сложности: Все отлично |
|||||
45 | Интерфейс. Щепотка рефакторинга |
1 тест |
|||
На этом уроке мы начинаем подготовку к превращению пешки в одну из четырёх фигур. Для начала проведём небольшой рефакторинг. Отчёт отправил: 4814. Дмитрий Выполнено за 54 мин. [Показать отчёт] Научился: Провели рефакторинг кода, упростили функции ShowFigures и ShowSquare, написали функцию SetSprite. Сложности: Рефакторинг в данном случае сложно воспринимать просто потому, что незнакомы классы и методы Unity - GameObject, SpriteRenderer, transform.position, GetComponent, Instantiate и т.п. |
|||||
46 | Интерфейс. Выставка фигур |
|
|||
На этом уроке мы продолжаем подготовку к превращению пешки в одну из четырёх фигур. Теперь нам надо подготовить фигуры, в которые будем превращать. Отчёт отправил: 4814. Дмитрий Выполнено за 59 мин. [Показать отчёт] Научился: Дополнили функцию InitGameObjects, реализовали функцию ShowPromotionFigures для отображения доступных фигур, на которые может быть обменена пешка при достижении последней горизонтали. Подготовились к реализации полноценного преобразования пешки. Сложности: Все отлично. |
|||||
47 | Интерфейс. Долгожданное превращение |
|
|||
На этом уроке мы наконец превратим нашу пешку в одну из четырёх фигур. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 32 мин. [Показать отчёт] Научился: Закончили реализацию преобразования пешки в одну из фигур при достижении последней горизонтали, а заодно и реализацию всего раздела правил перемещения фигур. Сложности: Все отлично. |
|||||
48 | Интерфейс. ЧЕТВЁРТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о четвёртой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4814. Дмитрий Выполнено за 7 мин. [Показать отчёт] Научился: Реализовали всю алгоритмическую часть корректного передвижения фигур по доске. Все отлично. Сложности: Основная сложность связана с незнанием Unity и его элементов. Учимся! |
|||||
49 | База данных. Management в студию! |
|
|||
На этом уроке мы приступаем к созданию БД для нашего сервера шахматы онлайн. Отчёт отправил: 4814. Дмитрий Выполнено за 16 мин. [Показать отчёт] Научился: Скачал и установил SQL SMS. Сложности: Все просто. |
|||||
50 | База данных. Планирование |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы спроектируем схему нашей БД. Отчёт отправил: 4814. Дмитрий Выполнено за 50 мин. [Показать отчёт] Научился: Подготовка структуры будущей базы данных. Сложности: Очень интересная и важная тема для создания игры. |
|||||
51 | База данных. Упрощение |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы упростим схему нашей БД. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 33 мин. [Показать отчёт] Научился: Упростили схему, оставили только то, без чего вообще обойтись нельзя. Сложности: Жалко блок "Players". Самому будет тяжело разбираться с идентификацией игроков и т.п. |
|||||
52 | База данных. Созидание |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы наконец создадим нашу базу данных для онлайн шахмат. Отчёт отправил: 4814. Дмитрий Выполнено за 34 мин. [Показать отчёт] Научился: Первое знакомство с MS SQL. Создали первую базу данных. Сложности: Все отлично. |
|||||
53 | База данных. VIP. Таблицы на вырост |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы создадим дополнительные таблицы, которые понадобятся для реализации полноценной онлайн игры. Отчёт отправил: 4814. Дмитрий Выполнено за 24 мин. [Показать отчёт] Научился: Добавили таблицы, необходимые для создания полнофункционального приложения. Сложности: Пока все понятно. |
|||||
54 | База данных. VIP. Красивая диаграма |
|
|||
На данном уроке мы нарисуем диаграмму нашей БД.
Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 47 мин. [Показать отчёт] Научился: Создали диаграмму зависимостей БД. Сложности: Все отлично. |
|||||
55 | База данных. ПЯТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о пятой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4814. Дмитрий Выполнено за 11 мин. [Показать отчёт] Научился: Скачали и установили SQL SMS. Провели подготовительные работы для создания базы данных, создали структуру БД, внесли начальные данные. Сложности: Все понятно, но это еще только подготовительная работа. Непосредственная работа с БД - впереди. |
|||||
56 | Сервер. Последняя версия |
|
|||
На данном уроке мы приступаем к созданию серверной части нашего онлайн проекта по шахматам. Отчёт отправил: 4814. Дмитрий Выполнено за 19 мин. [Показать отчёт] Научился: Приступили к созданию сервера, запустили WebAPI, создали класс с конструктором Version Сложности: Все отлично. |
|||||
57 | Сервер. Райский Эдем - EDM |
|
|||
На этом уроке мы создадим EDM - Entity Data Model.
Отчёт отправил: 4814. Дмитрий Выполнено за 28 мин. [Показать отчёт] Научился: Добавили к нашему проекту ADO.NET EDM, подключились к базе данных, создали и модифицировали ChessController. Сложности: Все новое и интересное. |
|||||
58 | Сервер. Новая игра на JSON |
|
|||
На этом уроке мы изменим формат вывода с XML на JSON.
Отчёт отправил: 4814. Дмитрий Выполнено за 49 мин. [Показать отчёт] Научился: Модифицировали файл Gliobal.asax, удалив xml-формат и добавив JSON. Модифицировали контроллер и написали функцию запуска новой игры. Сложности: Все в новинку. |
|||||
59 | Сервер. Официант без логики |
|
|||
На этом уроке мы будем упрощать наш ChessController.
Отчёт отправил: 4814. Дмитрий Выполнено за 8 час. 44 мин. [Показать отчёт] Научился: Создали и наполнили класс Logic в моделях, провели рефакторинг, освободили контроллер от лишнего кода. Подключили библиотеку ChessRules. Сложности: По отдельности понятно, но вот собрать все это в голове и усвоить - сложно. |
|||||
60 | Сервер. Ваш ход! |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем выполнение ходов. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 29 мин. [Показать отчёт] Научился: Написали функции GetMoves и MakeMove для реализации хода. Внесли изменения в WebApiConfig. Сложности: Сложно помнить обо всех ранее реализованных функциях и взаимосвязях между ними. |
|||||
61 | Сервер. Шахматная Идемпотентность |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы обсудим Шахматную Идемпотентность. Напишите своими словами, что такое Идемпотентность. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 25 мин. [Показать отчёт] Научился: Реализовали функции GetGameById и GetGame. Все отлично. Сложности: Все понятно. |
|||||
62 | Сервер. Китайская ничья |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем завершение игры при сдаче. Отчёт отправил: 4814. Дмитрий Выполнено за 53 мин. [Показать отчёт] Научился: Реализовали возможность сдаться/прекратить партию. Сложности: Все отлично. |
|||||
63 | Сервер. ШЕСТОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о шестой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4814. Дмитрий Выполнено за 9 мин. [Показать отчёт] Научился: Реализовали серверную часть. Создали базу данных для игры, подключив ADO.net. Создали и наполнили новый класс Logic с различными состояниями игры. Реализовали класс ChessController. Сложности: Сложность в обычном недостатке знаний, в связи с чем много новых понятий. |
|||||
64 | Хостинг. Регистрация аккаунта |
|
|||
Приступаем к размещению нашего сервера в интернете. Для этого нам потребуется Windows-хостинг с поддержкой ASP.NET Чтобы мы были на одной волне и смогли проработать всё вместе, пожалуйста зарегистрируйтесь на этом хостинг-сервисе: Ссылка для регистрации на хостинге: https://www.reg.ru/?rlink=reflink-30461 Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 10 мин. [Показать отчёт] Научился: Знакомство с хостингом. Сложности: Все понятно. |
|||||
65 | Хостинг. Лучше заплатить |
|
|||
На этом уроке мы выберем план, доменное имя, укажем контактную информацию. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 25 мин. [Показать отчёт] Научился: Познакомился с хостингом и основными понятиями. Прошел регистрацию, оплатил и получил домен. Все замечательно. Сложности: Совершить оплату. Традиционные способы оплаты в Крыму не действуют, напрямую заплатить нельзя, пришлось создать яндекс-кошелек. |
|||||
66 | Хостинг. Доступ по FTP |
|
|||
На этом уроке мы установим пароль для подключения к хостингу по FTP. Напишите, какой FTP-клиент вы используете и приложите скриншот вашей FTP программы с подключением к хостингу. Отчёт отправил: 4814. Дмитрий Выполнено за 13 час. 30 мин. [Показать отчёт] Научился: Загрузили Total Commander, подключились к сайту по FTP. Все прошло успешно. Сложности: Все ново и увлекательно. |
|||||
67 | Хостинг. Публикация проекта |
|
|||
На этом уроке мы настроим публикацию проекта из Visual Studio. Выполните все шаги и опубликуйте проект. Приложите скриншот Visual Studio с логами публикации и содержимое FTP каталога после публикации. Отчёт отправил: 4814. Дмитрий Выполнено за 8 час. 3 мин. [Показать отчёт] Научился: Настроили ftp-подключение в Visual Studio, провели сборку и публикацию в VS. Возникли ошибки с web.config на сайте. Сложности: Все ново. |
|||||
68 | Хостинг. Перенос базы данных |
|
|||
На этом уроке мы перенесём базу данных на сервер и подключимся к ней из скрипта. Отчёт отправил: 4814. Дмитрий Выполнено за 13 час. 5 мин. [Показать отчёт] Научился: Перенесли Базу данных на сервер, провели настройку подключения. Сложности: Проблемы с Web.config. |
|||||
69 | Хостинг. VIP. Двойные стандарты |
|
|||
На этом уроке мы обсудим нюансы с публикацией очередной версии серверной части на хостинге. Отчёт отправил: 4814. Дмитрий Выполнено за 58 мин. [Показать отчёт] Научился: Модифицировали файл web.config, защитив его от "перезаписи" со стиранием настроек при повторных публикациях. Сложности: Все ново. Придется разбираться с web.config. |
|||||
70 | Хостинг. СЕДЬМОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
В этой части мы разместили сервер не хостинге. Шахматная серверная программа нашла пристанище в интернете. Наконец-таки можно будет переходить к игре по сети. Напишите в отчёте, всё ли получилось и по какому адресу можно найти ваш серверный API. Отчёт отправил: 4814. Дмитрий Выполнено за 1 день 17 час. 23 мин. [Показать отчёт] Научился: http://wartalent.ru/api/Chess УРА!!! Зарегистрировал хостинг, оплатил, настроил, прописал доступ по FTP и опубликовал. Теперь можно делать ходы непосредственно на сайте. Все отлично!!! Сложности: Огромная, а главное - неизвестная, проблема возникла из-за того, что в web.config в 13-й строке была прописана последняя версия .Net Framework ... targetFramework="4.7.1" В результате VS успешно строила и публиковала проект, а на сайте он не публиковался. При этом выскакивало сообщение о том, что проблема именно на сайте, но какая - не скажем из соображений безопасности. Пришлось пересмотреть последние 8 видео, удалить все настройки подключения ftp, хостинга, публикации и заново пройти всю процедуру настройки хостинга в поисках ошибки или пропущенного действия и перепрописать все настройки. Не помогло. Все успешно строилось, но на сайт не пускали. Ошибок и пропусков не было, просто при публикации в VS нужно понизить версию .Net Framework. Мелочь, но на это ушло 2-3 дня и масса усилий. Сложно искать неизвестную ошибку, о которой не знаешь, причем в технологиях, в которых не разбираешься. |
|||||
71 | Клиент. Достучаться до облака |
|
|||
На этом уроке мы приступаем к завершающему этапу по созданию клиент-серверной игры "Онлайн шахматы". Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 36 мин. [Показать отчёт] Научился: Создали новый класс Client, подключились к сайту и получили строку Fen. Все отлично. Сложности: Чтобы получить именно FEN из полученной строки, нужно: 1. Разбить строку на части по пробелу (первый пробел сразу после FEN). Поможет Split(). 2. С помощью IndexOf(' ') можем определить позицию первого пробела, отнимаем 1 и находим позицию последнего знака FEN. 3. Затем с помощью того же IndexOf("FEN") находим путем прибавления к значению индекса 6 позиций индекс первого знака FEN. 5. С помощью Substring выводим весь FEN, зная индексы первого и последнего знака. 5. Затем можем провести разбиение FEN на 8 горизонталей путем разбиения по /слешу. Какое-то примитивное и долгое решение. :-) |
|||||
72 | Клиент. Дедовские методы |
|
|||
На этом уроке мы выделим FEN из полученной json строки.
Отчёт отправил: 4814. Дмитрий Выполнено за 46 мин. [Показать отчёт] Научился: Вычленили FEN из строки, полученной с сервера, обработали, сделали ход. Сложности: Все отлично. |
|||||
73 | Клиент. Ход в мешке |
|
|||
На этом уроке мы научимся отправлять на сервер наш ход.
Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 35 мин. [Показать отчёт] Научился: Реализовали функции получения данных с сервера, обработки, преобразования и отправки данных на сервер. Протестировали работу программы в 2 консолях. Все супер! Сложности: Все великолепно. |
|||||
74 | Клиент. Серверные пешки |
|
|||
На этом уроке мы используем ранее созданный класс Client() в наш проект на Unity, чтобы можно было поиграть с GUI. Отчёт отправил: 4814. Дмитрий Выполнено за 33 мин. [Показать отчёт] Научился: Импортировали класс Client на Unity, подключили к классу Board, получили данные с сервера. Все отлично. Сложности: По отдельности - все понятно. |
|||||
75 | Клиент. Следы невиданных ходов |
|
|||
На этом уроке мы реализуем отправку хода через GUI.
Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Реализовали функцию MakeMove, позволяющую отправлять ход на сервер. Теперь мы не только получаем позицию fen с сервера, но и возвращаем после сделанного хода. Сложности: Все отлично. |
|||||
76 | Клиент. Фоновое обновление |
|
|||
На этом уроке мы реализуем функцию обновления текущего состояния на доске. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Реализовали функцию обновления Refresh, теперь клиент видит ситуацию в режиме "on line". Все отлично. Сложности: По отдельности - все понятно, сложно осознать все в целом. |
|||||
77 |
![]() |
|
|||
Поздравляю вас с завершением нашего эпического курса по созданию клиент-серверной игры в шахматы по сети! Запишите живое видео, где будет видно, что в игру можно поиграть с двух разных устройств/компьютеров. Расскажите на видео о своём подвиге. Чем курс понравился, что было сложно, что было интересно, что можно будет добавить. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 15 мин. [Показать отчёт] Научился: Чем дальше я прохожу курс и чем больше мысленно "примеряю" его на предмет "расчленения" на блоки и сниппеты с целью использования для создания собственной игры, тем, с одной стороны, все более четко представляется структура и последовательность ее разработки, а с другой - охватывает ужас, когда осознаю, насколько много еще нужно узнать и изучить, чтобы написать "простенькую пошаговую многопользовательскую игру". Сложности: Из всех уроков сложнее всего писать видеообзоры. С 6 раза удалось записать более-менее. И только в тот момент, когда я собрался загружать на youtube, я вспомнил, что он не поддерживает разрешение 2560 х 1080. Пришлось писать 7-й обзор. Для записи обзора также пришлось достать и подключить старый компьютер. И бегать между 2 компами. Был у меня недавно смартфон, но пришлось подарить алчным страждущим. Видеообзор: FljlPQO8Ko8 |
|||||
78 | Рефакторинг. С чего начать? |
|
|||
На этом уроке мы начинаем рефакторинг кода клиентской части на Unity. Отчёт отправил: 4814. Дмитрий Выполнено за 26 мин. [Показать отчёт] Научился: Приступаем к рефакторингу. Пока что просто выделили DragAndDrop в отдельный класс. Можно отрефакторить повторяющийся вызов функций и записать их в отдельную функцию: ShowFigures(), MarkSquareFrom(), ShowPromotioFigures() в функциях Start и Refresh. Но это как-то "мелко". Сложности: Все понятно. |
|||||
79 | Рефакторинг. Координатные трансформации |
|
|||
На этом уроке мы продолжаем рефакторинг и сейчас мы выделим статические элементы. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 17 мин. [Показать отчёт] Научился: В рамках рефакторинга создали класс Coords для преобразования клеток из текстового вида "a1" в числовой [0][0] и наоборот. Сложности: Рефакторинг - это классно. Но опасно и сложно для восприятия. В следующем месяце мне еще повторно идти "по своим следам", а весь последовательный и понятный код будет растащен в разные специализированные классы. |
|||||
80 | Рефакторинг. Чёрный ящик |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы займёмся словарями. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: Создали класс Box для целей рефакторинга, куда со временем перетащим все ассоциативные массивы и действия над клетками и фигурами. Сложности: Все понятно. |
|||||
81 | Рефакторинг. Интерфейсная прослойка |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим интерфейс ICreatable. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Добавили интерфейс, преобразовали класс Board. Сложности: Тяжко. Не хватает элементарных базовых знаний по интерфейсам, словарям и т.п. Понимание действий есть, но с большим трудом. |
|||||
82 | Рефакторинг. Ящик с фигурами |
1 тест |
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы сделаем класс Box() абстрактным. Отчёт отправил: 4814. Дмитрий Выполнено за 40 мин. [Показать отчёт] Научился: Создали класс BoxFigures, который отвечает за инициализацию фигур. Освобождаем класс Board. Сложности: Сочетание жгучего интереса и легкой паники. |
|||||
83 | Рефакторинг. Многоклеточная сущность |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxSquares(). Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 2 мин. [Показать отчёт] Научился: Создали класс BoxFigures, вынесли в него весь код, связанный с инициализацией фигур. Сложности: Все понятно. |
|||||
84 | Рефакторинг. Вынос переноса |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetPosition(). Отчёт отправил: 4814. Дмитрий Выполнено за 15 мин. [Показать отчёт] Научился: Перенесли определение каждой фигуры на соответствующей клетке из класса Board в класс Box. Сложности: Все понятно. |
|||||
85 | Рефакторинг. Спрайт, не дай себя заинтерфейсить |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetSpriteAt(). Отчёт отправил: 4814. Дмитрий Выполнено за 25 мин. [Показать отчёт] Научился: Вынесли в класс Box функцию привязки выбранной в коде VS фигуры к соответствующему спрайту в Unity. Сложности: Все понятно. Ну или почти все. |
|||||
86 | Рефакторинг. Клетка в клетке |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём и разделим класс ShowSquare(). Отчёт отправил: 4814. Дмитрий Выполнено за 31 мин. [Показать отчёт] Научился: Переносим из класса Board в класс BoxSquares всю информацию, связанную с характеристиками клеток и работой с ними. В этом классе происходит создание клеток, раскраска клеток шахматной доски, привязка фигур с логикой из библиотеки ChessRules к соответствующим спрайтам в Unity, а также определение подсветки клеток, с которых и на которые фигуры могут ходить. Сложности: Все понятно. |
|||||
87 | Рефакторинг. Шахматная независимость |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём некоторые функции в класс BoxSquares(). Отчёт отправил: 4814. Дмитрий Выполнено за 35 мин. [Показать отчёт] Научился: Разгружаем класс Board. Перенесли в класс BoxSquares, который отвечает за работу с клетками, функции, помечающие клетки, с которых и на которые фигуры могут ходить, а также функцию снятия этих меток. Сложности: Шаманство какое-то. Нужно изучить коллекции в целом и оператор Yield в частности. |
|||||
88 | Рефакторинг. Хоровод из четырёх фигур |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы порефакторим функционал превращения пешки. Отчёт отправил: 4814. Дмитрий Выполнено за 3 час. 18 мин. [Показать отчёт] Научился: Модифицировали функцию преобразования пешки, дошедшей до последней линии, в возможные фигуры. Сложности: Все понятно. Но уж больно диковинными становятся ранее простые функции. |
|||||
89 | Рефакторинг. Волшебник изумрудного ящика |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxPromots(). Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 1 мин. [Показать отчёт] Научился: Реализовали функцию превращения пешки по достижению последней линии в фигуры, разгрузили класс Board. То, что пешка может превратиться в саму себя, будет реализовано чуть позже. Но в настоящий момент не вполне корректно работает сама функция преобразования, т.к. она не запрещает выбирать что-либо, кроме указанных фигур. Когда пешка достигает последней линии - высвечиваются фигуры. Если клацкнуть на них - произойдет замена. Но если клацкнуть в любое место на самой доске или просто мимо фигур замены, то останется сама пешка, преобразования не будет. Сложности: Все отлично. Начинаю привыкать к мудреным преобразованиям кода. |
|||||
90 | Рефакторинг. Потерянная пешка |
|
|||
На этом уроке мы вернёмся к нашей библиотеке для исправления старой ошибки: пешка может превратиться в чужую фигуру ил остаться пешкой. Отчёт отправил: 4814. Дмитрий Выполнено за 8 час. 47 мин. [Показать отчёт] Научился: Написали функцию проверки допустимости преобразования пешки в другие фигуры на последней горизонтали, модифицировали класс FigureMoving Сложности: Постоянно обнаруживались какие-то ошибки, пришлось повозиться, чтобы отловить их. |
|||||
91 | Рефакторинг. Класс шахматной игры |
|
|||
ЭТОТ УРОК НУЖНО ПЕРЕЗАПИСАТЬ. ДЛЯ ЭТОГО МНЕ НУЖЕН ПРОЕКТ ДО ЕГО ВЫПОЛНЕНИЯ. ПОЖАЛУЙСТА ПЕРЕД ВЫПОЛНЕНИЕМ ЭТОГО УРОКА СОЗДАЙТЕ АРХИВ ПРОЕКТА И ПРИШЛИТЕ ЕГО МНЕ. Мы на финишной прямой нашего рефакторинга. На данном уроке мы вынесем логику игры в отдельный класс Game(). Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 1 мин. [Показать отчёт] Научился: Создали новый класс Game, чтобы разгрузить Board и перебросить в новый класс игровую логику. Сложности: Сложность в том, что запись рефакторинга была раньше реализации подключения клиента и обновления сервера. И fen мы уже получаем с сервера. Пришлось временно реализовать перегрузку метода game.Init (string fen). Некорректно, зато работает. Наверно, правильнее назвать game.Refresh (string fen). |
|||||
92 | Рефакторинг. Двухэтажное превращение |
|
|||
Мы всё ближе и ближе к финишу нашего рефакторинга. На данном уроке мы вынесем оставшуюся логику игры в класс Game(). Отчёт отправил: 4814. Дмитрий Выполнено за 1 день 15 час. 31 мин. [Показать отчёт] Научился: Продолжаем освобождать класс Board и переносим игровую логику в класс Game. Реализовали перенос функции преобразования пешки в выбранную фигуру при достижении ею последней горизонтали. Сложности: Все нормально. |
|||||
93 | Рефакторинг. Финальное причёсывание |
|
|||
Мы поздравляем тебя с завершением рефакторинга. На данном уроке мы причешем наши скрипты. Отчёт отправил: 4814. Дмитрий Выполнено за 2 час. 5 мин. [Показать отчёт] Научился: Прошлись по всем классам, убрали лишнее. Все отлично. Сложности: Все понятно. |
|||||
94 | Рефакторинг. Последний аккорд |
|
|||
На этом уроке мы заканчиваем наш эпический курс. Получилось здорово. Я доволен результатом. Надеюсь, вы тоже. Мы проделали огромную работу. Каждый стал чуточку умнее и опытнее. Отчёт отправил: 4814. Дмитрий Выполнено за 1 час. 22 мин. [Показать отчёт] Научился: Большое спасибо Евгению Витольдовичу за этот прекрасный курс и за знакомство с новыми технологиями и понятиями - Unity, ASP.net, MS-SQL, EF, хостинг. Теперь есть четкая инструкция для создания собственной игры от момента написания Концепции и реализации ее правил на C# до создания полноценного клиент-серверного с размещением на сервере. В ближайшее время прохожу курсы Entity Framework, ASP.net. Затем возвращаюсь к курсу "Шахматы онлайн" и, используя в качестве прототипа и руководства к действию, приступаю к написанию своей игры, повторно проходя большинство уроков. Параллельно прохожу "Наношахматы", "Мат конем и слоном", "Tinkvalimas", "VK API". Сложности: Все ново. Все интересно. Многое сложно. Но главное - курс дает четкий пошаговый план создания своей многопользовательской игры и знакомит с необходимыми для этого технологиями. |
|||||
95 | VIP. Меню DimanDOSа |
|
|||
1. Создание и размещение кнопки вызова меню и панели с кнопками. 2. Программирование действий по нажатиям кнопок - создание функций и привязка их к событиям нажатия. Отчёт отправил: 4814. Дмитрий Выполнено за 6 час. 38 мин. [Показать отчёт] Научился: Углубили знакомство с Unity, познакомились с созданием кнопок Меню и интерактивностью. Сложности: DimanDOS - лучший! |
|||||
Итого: 95 видеоуроков |
17 час. 04 мин. 18 тестов |
19 чел. | |||
Финалисты: Дмитрий, Yefim, Tekashnik, Иван Воронин, ser2018, Алексей, Дмитрий Б, alklokov, FireWolf, Andrew, Max, Новопашин Владимир, Красимир Зорбов, Антон, Евгений, Anatoli, Freud, Алена, MaxB . |