# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
3 теста |
|||
Мы начинаем создание клиент-серверной программы для игры в Шахматы по сети. Это комплекс программных решений с исользованием: C#, ASP.NET, MS-SQL, EF, Unity В результате мы создадим сервер, через который клиенты смогут играть друг с другом в шахматы со смартфона. Записаться на курс Отчёт отправил: 17334. Дмитрий Б Выполнено за 17 мин. [Показать отчёт] Научился: Я онакомился с общей схемой разработки данного приложения Сложности: Мало знаком с платформой Unity 3D |
|||||
2 | Доска. Установка Unity 3D |
|
|||
Цель этого урока - установить Unity и набрать несколько строчек шахматных терминов. Скачать Unity3D: unity3d.com/ru Набрать шахматные термины: videosharp.info/console/task/level=1766 Скачать архив с картинками: https://yadi.sk/d/irBRduLp3SseXY Отчёт отправил: 17334. Дмитрий Б Выполнено за 17 дней 2 час. 30 мин. [Показать отчёт] Научился: 1. Установил Unity стал смотеть видео по работе с Unity. 2. При печатании шахматных терминов сделал 14 ошибок. Это не мало, но довел дело др конца. Сложности: самое сложное напечаттать текст без ошибок |
|||||
3 | Доска. Фигуры |
|
|||
На этом уроке мы разместим доску с фигурами. Отчёт отправил: 17334. Дмитрий Б Выполнено за 8 дней 1 час. 25 мин. [Показать отчёт] Научился: Научился работать с Unity Ипортировал картинки в Unity Сложности: Сложностей не было |
|||||
4 | Доска. Состояния переноса |
|
|||
На этом уроке мы начнём процесс Drag-n-Drop и обсудим все состояния, через которые проходит объект в процессе переноса. Создадим скрипт, класс, перечисление, конструктор и метод Action. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 день 20 час. 36 мин. [Показать отчёт] Научился: Научился создавать классы в Unity. Сложности: Не знаком с классом GameObject Стараюсь понять принципы работы Unity |
|||||
5 | Доска. Подцеп фигуры |
|
|||
На этом уроке мы найдём фигуру, по которой кликнул пользователь. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 день 56 мин. [Показать отчёт] Научился: Научился создавать коллайдер и писать дополнительные функции в visual studio Вывод названия фигуры в консоль Сложности: Вставлять дополнительные функции в visual studio было немного сложно т.к. не все понятно было |
|||||
6 | Доска. Смещение |
|
|||
На этом уроке мы допишем перенос фигуры и учтём смещение при клике. Теперь вы сможете разыграть любую партию - сделайте скриншот интересной позиции! Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 час. 49 мин. [Показать отчёт] Научился: Научился писать методы. Научился на практике как работают методы Drug(Drop) PickUp() Сложности: Появилось много методов. И не всегда все понимаеться сразу. |
|||||
7 | Доска. Запуск на Windows |
|
|||
На этом уроке мы создадим независимый билд (рабочая версия) нашей игры для платформы Windows. Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 дня 5 час. 38 мин. [Показать отчёт] Научился: Научился настраивать Player settings. Создавать билд игры Сложности: Все было понятно и легко |
|||||
8 | Доска. ПЕРВЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы закончили первую часть курса, создали шахматную доску, запустили её на Windows. Напишите отзыв о первой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 17334. Дмитрий Б Выполнено за 29 мин. [Показать отчёт] Научился: Усвоили взаимодействие Unity 3D с кодом C#. Сложности: Сложно было разобраться во взаимодействии с Unity, т.к работал с данной платформой впервые. |
|||||
9 | Доска. VIP. Запуск на Android |
|
|||
На этом уроке мы запустим нашу доску на операционной системе Android. Приготовьте свой планшет/телефон и приступайте к эскпорту и запуску! * Выполнять этот урок не обязательно. Отчёт отправил: 17334. Дмитрий Б Выполнено за 5 дней 16 час. 37 мин. [Показать отчёт] Научился: Научился запускать программу на мобильном. Сложности: Получилось не с первого раза но получилось |
|||||
10 | Доска. VIP. Запуск в Интернете |
|
|||
На этом уроке мы отправим наш проект в Интернет. Для этого мы воспользуемся технологией WebGL. Генерация страницы занимает продолжительное время. Засеки момент начала и напиши в отчете сколько времени это заняло. * Выполнять этот урок необязательно. Отчёт отправил: 17334. Дмитрий Б Выполнено за 18 час. 49 мин. [Показать отчёт] Научился: Научился загружать на local host при помощи Javascript и WebGl Сложности: Сама среда Unity пару раз слетала по не известным причинам |
|||||
11 |
![]() |
1 тест |
|||
На этом уроке мы познакомимся с архитектурой проекта, посмотрим на предстоящее путешествие с высоты птичьего полёта. Задание: написать, что для вас в этом плане самое простое, а что - самое сложное. Отчёт отправил: 17334. Дмитрий Б Выполнено за 14 дней 17 час. 53 мин. [Показать отчёт] Научился: 1. Самое дегкое это рисовать шахматные фигурки 2. Самое сложное это EF Unity |
|||||
12 | Классы. Шахматная библиотека |
2 теста |
|||
На данном уроке мы начинаем создание шахматных классов на языке C#, которые позволят проверять правила игры. Для этого мы напишем библиотеку, которая сможет для любой шахматной позиции определить возможность любого хода. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 день 5 час. 34 мин. [Показать отчёт] Научился: Научились создавать структуру приложения, взаимосвязь между классами, архитектура обшего представрения данного проекта. Нам нужны еще классы Class timer ( показывает время игры, общее время) class Winner (описывает логику победы) class Loose (показывает логику проигрыша) class ( показывает логику ничьи) Можно также реализовать один класс в котором описать логику проигрыша, победы, ничьи Сложности: Сложно понять как реализовать механизм: "Запись позиций с помощью нотации Форсайта—Эдвардса (FEN)" Начальная позиция шахматной партии: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 |
|||||
13 | Классы. Цветная фигура |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы рассмотри схему библиотеки dll, которая поможет нам сориентироваться в дальнейших действиях. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 28 мин. [Показать отчёт] Научился: Разобрался с взаимодействием enum с общим механизмом игры. Сложности: В конце на Brakepoints |
|||||
14 | Классы. Квадратная площадь |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим структуру классов с минимально необходимым кодом. Отчёт отправил: 17334. Дмитрий Б Выполнено за 6 дней 19 час. 56 мин. [Показать отчёт] Научился: Разобрался в структуре Square Сложности: Становиться сложнее когда добовляються дополнителье классы. |
|||||
15 | Классы. Фигурой марш! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим классы для хранения и перемещения фигур по клеткам. Отчёт отправил: 17334. Дмитрий Б Выполнено за 4 дня 19 час. 26 мин. [Показать отчёт] Научился: Создал 2 конструктора, и 2 класса FigureMoving , и FigureOnSquare Сложности: Сложностей с данной частю не возникло. |
|||||
16 | Классы. Квадратная матрица |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Board(), который будет заниматься доской и работать с FEN. Отчёт отправил: 17334. Дмитрий Б Выполнено за 31 мин. [Показать отчёт] Научился: Добавил в класс Library class Board, разобрался с его ф-циями-членами. Сложности: Не было сложностей. |
|||||
17 | Классы. Стой, кто идёт! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Moves(), который будет заниматься проверкой возможности хода. Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 час. 18 мин. [Показать отчёт] Научился: Усвоил общее представление о взаимодействии классов , и их методов Сложности: найти ошибку в класе Moves |
|||||
18 | Классы. Шахматная бюрократия |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы допишем класс Chess(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 20 мин. [Показать отчёт] Научился: Добавил дополнительный конструктор, и модифицыровал некоторые методы Сложности: нап данном этапе не было |
|||||
19 | Классы. Консольная доска |
1 тест |
|||
Мы приступаем к написанию тестов для нашей библиотеки. На этом уроке мы создадим функционал для отображения доски и исправим старую ошибку копипаста. Отчёт отправил: 17334. Дмитрий Б Выполнено за 56 мин. [Показать отчёт] Научился: Написал ф-ции для вывода, и раскрасски консольной доски Сложности: **черную сложнее программировать |
|||||
20 | Классы. ВТОРОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы создали все основные классы нашего проекта. Твоя задача - нарисовать UML схему созданных классов. Нарисовать схему значительно проще, когда проект уже готов. Поэтому задание не сложное, но очень, очень полезное и нужное. Используй иерархическую структуру Solution Explorer в VisualStudio. Нарисовать можно от руки, либо в сервисе draw.io. Можно использовать любой другой *не автоматический* инструмент рисования. Важно сделать это самостоятельно, а не сгенерить программой! Поэтому рисуй сам. * Не забывайте потом дорисовывать схему в процессе добавления новых методов в классах. Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 час. 59 мин. [Показать отчёт] Научился: С UML практику имел Сложности: не было сложностей |
|||||
21 | Алгоритмы. Волшебные шахматы |
1 тест |
|||
Мы приступаем к написанию шахматных алгоритмов. На этом уроке мы добавил в класс Board() необходимые свойства и реализуем парсинг передаваемого FEN. Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 час. 26 мин. [Показать отчёт] Научился: Научился проинициализировать все фигуры по правилам fen Сложности: небыло |
|||||
22 | Алгоритмы. Сборка фена |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем формирование текущей позиции в формате FEN. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 17 мин. [Показать отчёт] Научился: Cоздал ф-цию GenerateFEN(), доpaботaл ф-цию Move(FigureMovoing fm) в клаcce Board() Сложности: не возникло сложностей |
|||||
23 | Алгоритмы. Генератор ходов |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы начинаем реализацию проверок можно ли пойти с одной клетки на другую. Отчёт отправил: 17334. Дмитрий Б Выполнено за 45 мин. [Показать отчёт] Научился: Cоздал доп. функционал макета с алгоритмами, а именно : - Chess().YieldValidMoves() - Square().YieldBoardSquares() - Board().YieldMyFigureOnSquares() Сложности: все было понятно |
|||||
24 | Алгоритмы. Куда идёт Король |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли King пойти с одной клетки на другую. Отчёт отправил: 17334. Дмитрий Б Выполнено за 30 мин. [Показать отчёт] Научился: В клаccе Moves() дopабoтaл фyнкцию CanMoves() Сложности: проверка с конем |
|||||
25 | Алгоритмы. Ночью с Конём |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли Knight пойти с одной клетки на другую. Отчёт отправил: 17334. Дмитрий Б Выполнено за 12 мин. [Показать отчёт] Научился: Реализовал проверку ходов коня Сложности: не было затруднений на данном этапе |
|||||
26 | Алгоритмы. Дальнобойщики |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы переходим к дальнобойным фигурам. Отчёт отправил: 17334. Дмитрий Б Выполнено за 24 мин. [Показать отчёт] Научился: Все получилось, прoтeстиpoвал paбoту текущегo функционала Сложности: не было затруднений |
|||||
27 | Алгоритмы. Храбрая пешка |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы приступаем к реализации алгоритмов самой сложной фигуры: Pawn. Отчёт отправил: 17334. Дмитрий Б Выполнено за 7 час. 24 мин. [Показать отчёт] Научился: Реaлизoвал фyнкции: - Moves().CanPawnMove(), - Moves().CanPawnGo, - Moves().CanPawnJump, - Moves().CanPawnEat() Сложности: не возникло трудностей на этом этапе |
|||||
28 | Алгоритмы. Четвёртое превращение |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем превращение Pawn в одну из четырёх фигур: Queen, Knight, Bishop и Rook. Отчёт отправил: 17334. Дмитрий Б Выполнено за 42 мин. [Показать отчёт] Научился: Все получилось , прoтeстиpoвал paбoту текущегo функционала Сложности: не было |
|||||
29 | Алгоритмы. Рефакторинг на доске |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся рефакторингом. Отчёт отправил: 17334. Дмитрий Б Выполнено за 36 мин. [Показать отчёт] Научился: Сделал перенос всех необходимых ф-ций в отдельный класс NextBoard Сложности: не было |
|||||
30 | Алгоритмы. Допрыгалась! |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся взятием пешкой на проходе. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: все работает , протестировал, и дописал все необходимые ф-ции Сложности: не было |
|||||
31 | Алгоритмы. Королевский паркур |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем рокировку. Отчёт отправил: 17334. Дмитрий Б Выполнено за 58 мин. [Показать отчёт] Научился: Реализовал весь необходимый ф-ционал Все протестировал. Сложности: не было |
|||||
32 | Алгоритмы. Защита короля |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы будем защищать короля от ШАХа. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 день 2 час. 26 мин. [Показать отчёт] Научился: Протестировал, все работает Сложности: не было |
|||||
33 | Алгоритмы. Шах и Мат! |
|
|||
Мы заканчиваем написание шахматных алгоритмов. На этом уроке мы реализуем возврат ситуации на доске. Отчёт отправил: 17334. Дмитрий Б Выполнено за 45 мин. [Показать отчёт] Научился: Реaлизoвад вcпoмогaтeльнyю функцию Chess().SetCheckFlags(), и протестировал все Сложности: не было |
|||||
34 | Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК |
|
|||
На этом уроке мы исправим одну ошибку и добавим ещё один вариант метода GetFigureAt(string xy). Ваше задание - записать подробный отзыв об алгоритмической части проекта. Отчёт отправил: 17334. Дмитрий Б Выполнено за 24 мин. [Показать отчёт] Научился: Все ф-ции дописал, протестировал. Да, и в правду, это была не легкая часть т.к. ее пришлось сделать всего за 2 дня. Весь инструментарий(функциональность) оптимизирован, и грамотно сформулирован. Что до ошибок, то я не мог никак разобраться в чем проблема из-за логичной НЕТ в одном из условий., но это пустяк. Сложности: данная часть, не была трудной |
|||||
35 | Алгоритмы. VIP. Шахматное супертестирование |
|
|||
На этом уроке мы проверим корректность ваших алгоритмов. Для этого мы прогоним супер-тест по генерации всех вариантов. * Выполнять этот урок необязательно. Ссылка: Сайт с результатами тестирования Отчёт отправил: 17334. Дмитрий Б Выполнено за 23 мин. [Показать отчёт] Научился: ф-цию дописал протестировал. На 1й проверке - 20, на 2й - 400, на 3й - 8902 а на 4 проверке выдает результат Сложности: неверный рез на 4й проверке |
|||||
36 | Алгоритмы. VIP. Можно пройти? |
|
|||
На этом уроке мы немного порефакторим и добавим очень полезную функцию. Отчёт отправил: 17334. Дмитрий Б Выполнено за 8 мин. [Показать отчёт] Научился: All right. Done! Сложности: wasn't |
|||||
37 | Алгоритмы. VIP. Как пройти в библиотеку |
|
|||
На этом уроке мы подготовим библиотеку ChessRules. Для этого мы скомпилируем её в необходимой версии .NET и проверим работоспособность в Unity проекте. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 день 8 час. 39 мин. [Показать отчёт] Научился: Все было понятно Сложности: Когда сменил в настр. проджекта версию фреймворка на 3.5 то некоторые зависимости послитали, по неизвестной причине, и проект не компилировался(в первом скришоте видно) При откате назад(смене на версию 4.7) все работало.. Так не разбирал в чем проблема была |
|||||
38 | Интерфейс. План действий |
|
|||
На этом уроке мы обсудим дальнейший план действий.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 28 мин. [Показать отчёт] Научился: Все удалил, и по новому добавил 4 фона, и все фигуры за кадр Сложности: не было |
|||||
39 | Интерфейс. Генерация объектов |
|
|||
На этом уроке мы сгенерируем шахматную доску с базовыми объектами на ней. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 6 мин. [Показать отчёт] Научился: Все получилось, протестировал Сложности: затруднений не было |
|||||
40 | Интерфейс. Начальная позиция |
|
|||
На этом уроке мы добавим ранее созданную библиотеку ChessRules.dll в проект на Unity. Отчёт отправил: 17334. Дмитрий Б Выполнено за 32 мин. [Показать отчёт] Научился: Все работает , но у меня где то пропал Zero.png Сложности: Можете как то мне переслать Zero.png |
|||||
41 | Интерфейс. Ход делегата |
|
|||
На этом уроке мы активируем проверку ходов, которую реализовали в ChessRules.dll. Отчёт отправил: 17334. Дмитрий Б Выполнено за 23 час. 34 мин. [Показать отчёт] Научился: Добавил в клас делегат и ф-цию с одинаковой сигнатурой, все работает, но результат что то не тот что у вас..Смещена та же фигура, но позиция показывает (8.0, 2.0) (8.0, 6.1) Наверное где то в цикле ошибку допустил Сложности: не было |
|||||
42 | Интерфейс. Проверка хода |
|
|||
Мы продолжаем реализацию необходимого функционала для активации проверки ходов на основе ChessRules.dll. Отчёт отправил: 17334. Дмитрий Б Выполнено за 10 дней 13 час. 33 мин. [Показать отчёт] Научился: Реaлизoвал вcпoмогaтeльнyю функцию Board().VectorToSquare(), и Board().DropObject(). Прoтeстиpoвать paбoту скрипта. Сложности: Сложностей не возникло, за исключением того, что конь почему то возвращается назад, при чем и черных и белых., с этим разберусь, скорее всего где то в скипте что то .. |
|||||
43 | Интерфейс. VIP. Клетки отправления |
|
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, с которых можно ходить. Отчёт отправил: 17334. Дмитрий Б Выполнено за 29 мин. [Показать отчёт] Научился: Реaлизoвал вcпoмогaтeльнyю функцию Board().ShowSquare(), Board().MarkSquaresFrom(), DropObject() и Start(), и Board().UnmarkSquares() Сложности: сложностей не возникло на данном этапе |
|||||
44 | Интерфейс. VIP. Клетки прибытия |
1 тест |
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, на которые можно ходить. Отчёт отправил: 17334. Дмитрий Б Выполнено за 17 мин. [Показать отчёт] Научился: Реaлизoвал все вcпoмогaтeльные функции Board().PickObject() Board().MarkSquaresTo() DragAndDropю().PickUp() Сложности: не возникло сложности |
|||||
45 | Интерфейс. Щепотка рефакторинга |
1 тест |
|||
На этом уроке мы начинаем подготовку к превращению пешки в одну из четырёх фигур. Для начала проведём небольшой рефакторинг. Отчёт отправил: 17334. Дмитрий Б Выполнено за 14 час. 26 мин. [Показать отчёт] Научился: Реализовал вспомогательные функции Board().CreateGameObject(), и Board().SetSprite() Доработал вспомогательную функцию Board().ShowSquare() Сложности: на данном этапе трудностей не возникло |
|||||
46 | Интерфейс. Выставка фигур |
|
|||
На этом уроке мы продолжаем подготовку к превращению пешки в одну из четырёх фигур. Теперь нам надо подготовить фигуры, в которые будем превращать. Отчёт отправил: 17334. Дмитрий Б Выполнено за 28 мин. [Показать отчёт] Научился: Доработал вспомогательную функцию Board().InitGameObjects() Реализовал вспомогательную функцию Board().ShowPromotionFigures() Сложности: небыло |
|||||
47 | Интерфейс. Долгожданное превращение |
|
|||
На этом уроке мы наконец превратим нашу пешку в одну из четырёх фигур. Отчёт отправил: 17334. Дмитрий Б Выполнено за 22 час. 10 мин. [Показать отчёт] Научился: Доработал вспомогательную функцию Board().DropObject() и Board().PickObject() Протестировал , все работает. Сложности: не было |
|||||
48 | Интерфейс. ЧЕТВЁРТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о четвёртой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 мин. [Показать отчёт] Научился: В основном трудностей не возникло, не исключая тот факт, что много времени ушло на поиски ошибки в алгоритмах., но все исправил. Двигаемся дальше в том же духе. Сложности: выше описанное |
|||||
49 | База данных. Management в студию! |
|
|||
На этом уроке мы приступаем к созданию БД для нашего сервера шахматы онлайн. Отчёт отправил: 17334. Дмитрий Б Выполнено за 19 мин. [Показать отчёт] Научился: All right Сложности: не было |
|||||
50 | База данных. Планирование |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы спроектируем схему нашей БД. Отчёт отправил: 17334. Дмитрий Б Выполнено за 15 дней 13 час. 58 мин. [Показать отчёт] Научился: схему БД нарисовал Сложности: не было |
|||||
51 | База данных. Упрощение |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы упростим схему нашей БД. Отчёт отправил: 17334. Дмитрий Б Выполнено за 15 дней 13 час. 39 мин. [Показать отчёт] Научился: все было понятным Сложности: не было |
|||||
52 | База данных. Созидание |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы наконец создадим нашу базу данных для онлайн шахмат. Отчёт отправил: 17334. Дмитрий Б Выполнено за 12 час. 5 мин. [Показать отчёт] Научился: Базу и таблицу создал Сложности: не было |
|||||
53 | База данных. VIP. Таблицы на вырост |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы создадим дополнительные таблицы, которые понадобятся для реализации полноценной онлайн игры. Отчёт отправил: 17334. Дмитрий Б Выполнено за 30 мин. [Показать отчёт] Научился: Создал дополнительные таблицы, добавил необходимые ключи и индексы Сложности: не было |
|||||
54 | База данных. VIP. Красивая диаграма |
|
|||
На данном уроке мы нарисуем диаграмму нашей БД.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 12 мин. [Показать отчёт] Научился: Диаграмма готова Сложности: не было |
|||||
55 | База данных. ПЯТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о пятой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 17334. Дмитрий Б Выполнено за 2 мин. [Показать отчёт] Научился: Базы спроектированные , все готово к следующей разработки Сложности: С этой частью проблем не возникло |
|||||
56 | Сервер. Последняя версия |
|
|||
На данном уроке мы приступаем к созданию серверной части нашего онлайн проекта по шахматам. Отчёт отправил: 17334. Дмитрий Б Выполнено за 25 мин. [Показать отчёт] Научился: Все создал, опыт с API есть, все работает Сложности: все было понятным |
|||||
57 | Сервер. Райский Эдем - EDM |
|
|||
На этом уроке мы создадим EDM - Entity Data Model.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 32 мин. [Показать отчёт] Научился: Все проделал, работает без ошибок Сложности: не было |
|||||
58 | Сервер. Новая игра на JSON |
|
|||
На этом уроке мы изменим формат вывода с XML на JSON.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 33 мин. [Показать отчёт] Научился: Все проделано, протестировано, работает! Сложности: не было |
|||||
59 | Сервер. Официант без логики |
|
|||
На этом уроке мы будем упрощать наш ChessController.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 6 час. 40 мин. [Показать отчёт] Научился: Все проделал, протестировал, ошибок нету, все работает. Модифицировал контроллер ChessController Сложности: не было |
|||||
60 | Сервер. Ваш ход! |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем выполнение ходов. Отчёт отправил: 17334. Дмитрий Б Выполнено за 15 час. 30 мин. [Показать отчёт] Научился: Все получилось, протестировал, работает Сложности: в данной части трудность была при отладке: ResultsView: -> expanding the results view will enumerate the ienumerable immediate window |
|||||
61 | Сервер. Шахматная Идемпотентность |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы обсудим Шахматную Идемпотентность. Напишите своими словами, что такое Идемпотентность. Отчёт отправил: 17334. Дмитрий Б Выполнено за 2 час. 34 мин. [Показать отчёт] Научился: Реализовал функции: ChessController().GetGameById() Logic().GetGame(). Модифицировал ф-цию Logic().MakeMove() Протестировал все работает Сложности: не было |
|||||
62 | Сервер. Китайская ничья |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем завершение игры при сдаче. Отчёт отправил: 17334. Дмитрий Б Выполнено за 14 мин. [Показать отчёт] Научился: Модифицировал ф-цию ChessController().GetMoves(), Реализовал ф-цию Logic().ResignGame() Все протестировал, работает Сложности: не было |
|||||
63 | Сервер. ШЕСТОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о шестой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 17334. Дмитрий Б Выполнено за 9 мин. [Показать отчёт] Научился: Серверная часть прошла быстро, все оптимизировано Добавил бы статистику, и время Сложности: Трудность возникла при отладке, не отображалось Result пришлось в ф-ции GetCurrentGame привести к листу var currentGames public Game GetCurrentGame() { Game game; var currentGames = db.Games.Where(g => g.Status == "play").ToList(); |
|||||
64 | Хостинг. Регистрация аккаунта |
|
|||
Приступаем к размещению нашего сервера в интернете. Для этого нам потребуется Windows-хостинг с поддержкой ASP.NET Чтобы мы были на одной волне и смогли проработать всё вместе, пожалуйста зарегистрируйтесь на этом хостинг-сервисе: Ссылка для регистрации на хостинге: https://www.reg.ru/?rlink=reflink-30461 Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: Регестрация прошла успешно Сложности: не было |
|||||
65 | Хостинг. Лучше заплатить |
|
|||
На этом уроке мы выберем план, доменное имя, укажем контактную информацию. Отчёт отправил: 17334. Дмитрий Б Выполнено за 9 дней 1 час. 7 мин. [Показать отчёт] Научился: Подискал тестовый хостинг, на котором попробую разместить сайт Сложности: не было |
|||||
66 | Хостинг. Доступ по FTP |
|
|||
На этом уроке мы установим пароль для подключения к хостингу по FTP. Напишите, какой FTP-клиент вы используете и приложите скриншот вашей FTP программы с подключением к хостингу. Отчёт отправил: 17334. Дмитрий Б Выполнено за 2 час. 42 мин. [Показать отчёт] Научился: Развернул игру на somee.com хостинге, пользовался filezilla Сложности: не было |
|||||
67 | Хостинг. Публикация проекта |
|
|||
На этом уроке мы настроим публикацию проекта из Visual Studio. Выполните все шаги и опубликуйте проект. Приложите скриншот Visual Studio с логами публикации и содержимое FTP каталога после публикации. Отчёт отправил: 17334. Дмитрий Б Выполнено за 25 мин. [Показать отчёт] Научился: Все прошло успешно, БД перенес Сложности: не было |
|||||
68 | Хостинг. Перенос базы данных |
|
|||
На этом уроке мы перенесём базу данных на сервер и подключимся к ней из скрипта. Отчёт отправил: 17334. Дмитрий Б Выполнено за 6 час. 1 мин. [Показать отчёт] Научился: БД перенес успешно, но другим путем, тюк использую другой хостинг., web.config (connection string) изменил на текущую с хостинга. Протестировал, все работает. Сложности: не было, на данном этапе |
|||||
69 | Хостинг. VIP. Двойные стандарты |
|
|||
На этом уроке мы обсудим нюансы с публикацией очередной версии серверной части на хостинге. Отчёт отправил: 17334. Дмитрий Б Выполнено за 3 час. 33 мин. [Показать отчёт] Научился: Скопировал настроенный файл Web.config с хостинга к себе в отдельную папку, модифицировал Web.Release.config. Протестировал, все работает. Сложности: не было |
|||||
70 | Хостинг. СЕДЬМОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
В этой части мы разместили сервер не хостинге. Шахматная серверная программа нашла пристанище в интернете. Наконец-таки можно будет переходить к игре по сети. Напишите в отчёте, всё ли получилось и по какому адресу можно найти ваш серверный API. Отчёт отправил: 17334. Дмитрий Б Выполнено за 2 мин. [Показать отчёт] Научился: Все получилось, работает. URL Server API Chess: http://www.chess-online.somee.com/api/Version Сложности: не было |
|||||
71 | Клиент. Достучаться до облака |
|
|||
На этом уроке мы приступаем к завершающему этапу по созданию клиент-серверной игры "Онлайн шахматы". Отчёт отправил: 17334. Дмитрий Б Выполнено за 2 час. 14 мин. [Показать отчёт] Научился: Создал класс ChessDemo.Client, реализовал ф-цию Client().GetFenFromServer() Все работает., Сложности: не было |
|||||
72 | Клиент. Дедовские методы |
|
|||
На этом уроке мы выделим FEN из полученной json строки.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 11 час. 8 мин. [Показать отчёт] Научился: Реализовал вспомогательную ф-цию Client().GetFenFromJSON() Все протестировал, работает Сложности: сначала в классе логики не показовалось IsCheck(), потом нашел, ошибка была в том, что в класе Chess ф-ция SetCheckFlags() была вызвана только в одном конструкторе, который принимает параметр Board board |
|||||
73 | Клиент. Ход в мешке |
|
|||
На этом уроке мы научимся отправлять на сервер наш ход.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 5 час. 47 мин. [Показать отчёт] Научился: Добавил геттер/сеттер Client().GameID, реализовал функции Client().GetIdFromJSON(), и Client().SendMove(), ипользовал ф-цию SendMove() в цикле деморежима Протестировал , все работает Сложности: не было |
|||||
74 | Клиент. Серверные пешки |
|
|||
На этом уроке мы используем ранее созданный класс Client() в наш проект на Unity, чтобы можно было поиграть с GUI. Отчёт отправил: 17334. Дмитрий Б Выполнено за 31 мин. [Показать отчёт] Научился: Импортировал класс Client() в проект на Unity, использовал класс Clint() в Board(), протестировал загрузку партии с сервера Сложности: не было |
|||||
75 | Клиент. Следы невиданных ходов |
|
|||
На этом уроке мы реализуем отправку хода через GUI.
Отчёт отправил: 17334. Дмитрий Б Выполнено за 28 мин. [Показать отчёт] Научился: Реализовал вспомогательную функцию Board().MakeMove(), протестировал обмен данными между сервером и клиентом Сложности: не было |
|||||
76 | Клиент. Фоновое обновление |
|
|||
На этом уроке мы реализуем функцию обновления текущего состояния на доске. Отчёт отправил: 17334. Дмитрий Б Выполнено за 30 мин. [Показать отчёт] Научился: Модифицировал функцию Board().Start(), реализовал вспомогательную функцию Board().Refresh(), установил галку Run in Background Протестировал обновление текущего состояния доски, все работает Сложности: не было |
|||||
77 |
![]() |
|
|||
Поздравляю вас с завершением нашего эпического курса по созданию клиент-серверной игры в шахматы по сети! Запишите живое видео, где будет видно, что в игру можно поиграть с двух разных устройств/компьютеров. Расскажите на видео о своём подвиге. Чем курс понравился, что было сложно, что было интересно, что можно будет добавить. Отчёт отправил: 17334. Дмитрий Б Выполнено за 4 мин. [Показать отчёт] Научился: Видео приложу по завершению т.к нету возможности сделать это сейчас. Сложности: не было |
|||||
78 | Рефакторинг. С чего начать? |
|
|||
На этом уроке мы начинаем рефакторинг кода клиентской части на Unity. Отчёт отправил: 17334. Дмитрий Б Выполнено за 42 мин. [Показать отчёт] Научился: Вынес класс DragAndDrop() в отдельный фай, добавить необходимый using в файл Board.cs. Протестировал работу после проведённого рефакторинга, все работает. Сложности: не было |
|||||
79 | Рефакторинг. Координатные трансформации |
|
|||
На этом уроке мы продолжаем рефакторинг и сейчас мы выделим статические элементы. Отчёт отправил: 17334. Дмитрий Б Выполнено за 44 мин. [Показать отчёт] Научился: Создал класс Coords(), перенес функцию VectorToSquare() в класс Coords(), реализовал функции Coords().GetX/Y/Vector(), переименовал функцию VectorToSquare() в GetSquare(). Протестировал работу после проведённого рефакторинга Сложности: не было |
|||||
80 | Рефакторинг. Чёрный ящик |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы займёмся словарями. Отчёт отправил: 17334. Дмитрий Б Выполнено за 27 мин. [Показать отчёт] Научился: Создал абстрактный класс Box(), реализовал конструктор Box(), модифицировал работу с фигурами через Box() Протестировал работу после проведённого рефакторинга Сложности: не было |
|||||
81 | Рефакторинг. Интерфейсная прослойка |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим интерфейс ICreatable. Отчёт отправил: 17334. Дмитрий Б Выполнено за 2 дня 17 час. 13 мин. [Показать отчёт] Научился: Создал интерфейс ICreatable, модифицировал класс Board(), использовал новый функционал Протестировал работу после проведённого рефакторинга Сложности: не было |
|||||
82 | Рефакторинг. Ящик с фигурами |
1 тест |
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы сделаем класс Box() абстрактным. Отчёт отправил: 17334. Дмитрий Б Выполнено за 20 мин. [Показать отчёт] Научился: Создал класс BoxFigures() наследовал от класса Box, Реализовал конструктор BoxFigures(), реализовал функцию BoxFigures().Init(), сделал класс Box() абстрактным, модифицировал класс Board(), использовал новый функционал Протестировал работу после проведённого рефакторинга Сложности: не было |
|||||
83 | Рефакторинг. Многоклеточная сущность |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxSquares(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 42 мин. [Показать отчёт] Научился: Создал класс BoxSquares() : Box, реализовал конструктор BoxSquares(), реализовал функцию BoxSquares().Init(), реализовал функцию BoxSquares().GetColor(), модифицировал класс Board(), использовал новый функционал Протестировал работу после проведённого рефакторинга Сложности: не было |
|||||
84 | Рефакторинг. Вынос переноса |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetPosition(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 10 мин. [Показать отчёт] Научился: Реализовал функцию Box().SetPosition(), модифицировал класс Board(), использовал новый функционал Сложности: не было |
|||||
85 | Рефакторинг. Спрайт, не дай себя заинтерфейсить |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetSpriteAt(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 5 час. 54 мин. [Показать отчёт] Научился: Реализовал методы Box().SetSpriteAt(), дописал интерфейс ICreatable(), модифицировал класс Board(), использую новый функционал Сложности: не было |
|||||
86 | Рефакторинг. Клетка в клетке |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём и разделим класс ShowSquare(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 12 час. 37 мин. [Показать отчёт] Научился: Перенес ф-цию ShowSquare() из Board() в BoxSquares(), реализовал ф-ции Box().MarkSquare() Модифицировал класс Board(), использую новый функционал Протестировал работу после проведённого рефакторинг Сложности: не было |
|||||
87 | Рефакторинг. Шахматная независимость |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём некоторые функции в класс BoxSquares(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 39 мин. [Показать отчёт] Научился: Перенес ф-ции UnmarkSquares() из Board() в BoxSquares(), MarkSquaresFrom/To() из Board() в BoxSquares(), модифицировал класс Board(), использую новый функционал Протестировл работу после проведённого рефакторинга Сложности: не было |
|||||
88 | Рефакторинг. Хоровод из четырёх фигур |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы порефакторим функционал превращения пешки. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 день 10 час. 2 мин. [Показать отчёт] Научился: Создл константы proFigures, minx, whitey, и blacky. Реализовал ф-ции GetWhite/BlackProFigure(). Модифицировал ф-кции InitGameObjects(), и ShowPromotionFigures(). Протестировал работу после проведённого рефакторинга, все работает! Сложности: не было |
|||||
89 | Рефакторинг. Волшебник изумрудного ящика |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxPromots(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 11 час. 2 мин. [Показать отчёт] Научился: Оптимизировал код с прошлого урока, - создал класс BoxPromots() : Box, - реализовал конструктор BoxPromots(), - реализовал функцию BoxPromots().Init(), - переместить константы в класс BoxPromots(), - переместил функцию ShowPromotionFigures() в класс BoxPromots(), - реализовал функцию BoxPromots().HidePromotionFigures(), - реализовал функцию Box().SetSpriteFor(), - реализовал функцию BoxPromots().GetPromotionFigure(), - модифицировал класс Board(), использую новый функционал, - протестировал работу после проведённого рефакторинга. Сложности: хочу спросить, куда делась ф-ция - InvokeRepeating("Refresh", 2, 2); void Refresh() { string fen = client.GetFenFromServer(); if (chess.fen == fen) return; chess = new Chess(fen); ShowFigures(); squares.MarkSquaresFrom(chess.YieldValidMoves()); promots.HidePromotionFigures(); } , и в каком уроке мы ее переносим? Спасибо |
|||||
90 | Рефакторинг. Потерянная пешка |
|
|||
На этом уроке мы вернёмся к нашей библиотеке для исправления старой ошибки: пешка может превратиться в чужую фигуру ил остаться пешкой. Отчёт отправил: 17334. Дмитрий Б Выполнено за 11 час. 21 мин. [Показать отчёт] Научился: Реализовал ф-ции: FigureMoving().CheckPromotion(), и Moves().CanPawnPromote(), доработал ф-цию Moves().CanPawnMove(), Заменил библиотеку ChessRules везде где используется, Протестировал работу после проведённых исправлений, все работает Сложности: много времени ушло на тесты |
|||||
91 | Рефакторинг. Класс шахматной игры |
|
|||
ЭТОТ УРОК НУЖНО ПЕРЕЗАПИСАТЬ. ДЛЯ ЭТОГО МНЕ НУЖЕН ПРОЕКТ ДО ЕГО ВЫПОЛНЕНИЯ. ПОЖАЛУЙСТА ПЕРЕД ВЫПОЛНЕНИЕМ ЭТОГО УРОКА СОЗДАЙТЕ АРХИВ ПРОЕКТА И ПРИШЛИТЕ ЕГО МНЕ. Мы на финишной прямой нашего рефакторинга. На данном уроке мы вынесем логику игры в отдельный класс Game(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 4 мин. [Показать отчёт] Научился: Создал класс Game(), Реализовать функции: Game().Init(), Реализовал ф-ии Game().GetMoves(), Game().GetFigureAt(), Game().Move() Протестировал работу после проведённого рефакторинга, все работает!) Сложности: не было на данном этапе |
|||||
92 | Рефакторинг. Двухэтажное превращение |
|
|||
Мы всё ближе и ближе к финишу нашего рефакторинга. На данном уроке мы вынесем оставшуюся логику игры в класс Game(). Отчёт отправил: 17334. Дмитрий Б Выполнено за 9 час. 57 мин. [Показать отчёт] Научился: Проверку в IsValidMove() сделал ранее. Реализовал функции Game().NextMove(), Game().NextPromotionMove() Протестировал работу после проведённого рефакторинга, все работает! Сложности: на данном этапе не было |
|||||
93 | Рефакторинг. Финальное причёсывание |
|
|||
Мы поздравляем тебя с завершением рефакторинга. На данном уроке мы причешем наши скрипты. Отчёт отправил: 17334. Дмитрий Б Выполнено за 4 час. 42 мин. [Показать отчёт] Научился: Убрал во всех скриптах неиспользуемые юзинги, переместил вызов MarkSquaresFrom(), и HidePromotionFigures() в ShowFigures(), отимизировал функции инициализации. Работу протестировал после проведённого рефакторинга, все работает! Сложности: не было сложностей в данном уроке |
|||||
94 | Рефакторинг. Последний аккорд |
|
|||
На этом уроке мы заканчиваем наш эпический курс. Получилось здорово. Я доволен результатом. Надеюсь, вы тоже. Мы проделали огромную работу. Каждый стал чуточку умнее и опытнее. Отчёт отправил: 17334. Дмитрий Б Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Шахматный клиент сервер почти готов, все прошло успешно, без непредсказуемости.. На мое мнение, нужно будет еще добавить к приложению , статистику, таймер, время, и сопровождающие инструкции к игры, чем и займусь позже Сложности: не было |
|||||
95 | VIP. Меню DimanDOSа |
|
|||
1. Создание и размещение кнопки вызова меню и панели с кнопками. 2. Программирование действий по нажатиям кнопок - создание функций и привязка их к событиям нажатия. Отчёт отправил: 17334. Дмитрий Б Выполнено за 10 дней 21 час. 16 мин. [Показать отчёт] Научился: Создал свое меню, все работает отлично Сложности: поиск кнопок) |
|||||
Итого: 95 видеоуроков |
17 час. 04 мин. 18 тестов |
19 чел. | |||
Финалисты: Дмитрий, Yefim, Tekashnik, Иван Воронин, ser2018, Алексей, Дмитрий Б, alklokov, FireWolf, Andrew, Max, Новопашин Владимир, Красимир Зорбов, Антон, Евгений, Anatoli, Freud, Алена, MaxB . |