# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
3 теста |
|||
Мы начинаем создание клиент-серверной программы для игры в Шахматы по сети. Это комплекс программных решений с исользованием: C#, ASP.NET, MS-SQL, EF, Unity В результате мы создадим сервер, через который клиенты смогут играть друг с другом в шахматы со смартфона. Записаться на курс Отчёт отправил: 4210. Дмитрий Выполнено за 10 мин. [Показать отчёт] Научился: Стараюсь играть с людьми. Компу, как правило, проигрываю. Сложности: - |
|||||
2 | Доска. Установка Unity 3D |
|
|||
Цель этого урока - установить Unity и набрать несколько строчек шахматных терминов. Скачать Unity3D: unity3d.com/ru Набрать шахматные термины: videosharp.info/console/task/level=1766 Скачать архив с картинками: https://yadi.sk/d/irBRduLp3SseXY Отчёт отправил: 4210. Дмитрий Выполнено за 35 мин. [Показать отчёт] Научился: Пока ничему новому не научился. Установил Юнити. Сложности: Всё было довольно просто. |
|||||
3 | Доска. Фигуры |
|
|||
На этом уроке мы разместим доску с фигурами. Отчёт отправил: 4210. Дмитрий Выполнено за 47 мин. [Показать отчёт] Научился: Полезный урок. Осваиваемся в Юнити. Ещё раз понял важность "горячих клавиш". Например, зажав Альт, можно двигать сцену, а скроллингом масштабировать её. Сложности: Пока ничего сложного. |
|||||
4 | Доска. Состояния переноса |
|
|||
На этом уроке мы начнём процесс Drag-n-Drop и обсудим все состояния, через которые проходит объект в процессе переноса. Создадим скрипт, класс, перечисление, конструктор и метод Action. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 53 мин. [Показать отчёт] Научился: Первый раз совмещаю работу с графикой в одном (большом) приложении, и работу со скриптом в другом (не менее масштабном). Сложности: Юнити ругалась на скрипт из ВС. Долго мучился, наконец нашёл в отчётах у человека ту же проблему. Просто у класса осталось название по умолчанию, вместо "Борд". Исправил - зафурычило. |
|||||
5 | Доска. Подцеп фигуры |
|
|||
На этом уроке мы найдём фигуру, по которой кликнул пользователь. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 41 мин. [Показать отчёт] Научился: Собственно, на этом уроке продолжили прописывать скрипт для управления фигурами. Думаю, трудности будут, пока не привыкну к интерфейсу Юнити. Сложности: Самым сложным было разобраться с элементами управления Юнити. Как сделать вид с камеры с перспективой, чтобы вся доска помещалась на экране, я в конце концов разобрался. Но после этого перестали выбираться фигуры. В смысле, выводиться на консоль имена (а раньше реагировали, и имена появлялись). Кажется, фигуры не реагируют на "подцеп". Так-то они выбираются, а в режиме "Плэй" - нет. |
|||||
6 | Доска. Смещение |
|
|||
На этом уроке мы допишем перенос фигуры и учтём смещение при клике. Теперь вы сможете разыграть любую партию - сделайте скриншот интересной позиции! Отчёт отправил: 4210. Дмитрий Выполнено за 29 мин. [Показать отчёт] Научился: Приведение к типу, Использование "методов.методов.методов" в качестве переменных)) Умение объяснить Юнити, чего я от неё хочу. Сложности: Всё было понятно. И, самое главное, всё работало! |
|||||
7 | Доска. Запуск на Windows |
|
|||
На этом уроке мы создадим независимый билд (рабочая версия) нашей игры для платформы Windows. Отчёт отправил: 4210. Дмитрий Выполнено за 20 мин. [Показать отчёт] Научился: Ну вот, наконец первый готовый "независимый" продукт, которым можно похвастаться перед друзьями! ))) Сложности: Всё было просто и понятно. |
|||||
8 | Доска. ПЕРВЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы закончили первую часть курса, создали шахматную доску, запустили её на Windows. Напишите отзыв о первой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4210. Дмитрий Выполнено за 7 мин. [Показать отчёт] Научился: ЛэвлАп, по сравнению с большинством других курсов, которые я проходил. Мы делаем масштабную (и "масштабируемую" ;) игру, результат которой поймут не только люди "компьютерных" профессий, но и близкие, которым можно продемонстрировать плоды наших усилий. То чувство, когда получается, видишь результат, и это радует! Ещё меня греет осознание факта, что результат моих усилий не останется лежать в одной из бесчисленных папочек на компе, а может послужить при приёме на работу, в качестве портфолио. Сложности: Регулярно "спотыкался" о мелкие ошибки, которые не мог найти. Иной раз приходилось перепроходить уроки на другом компе, чтобы наконец выполнить всё правильно, и чтоб работало. )) |
|||||
9 | Доска. VIP. Запуск на Android |
|
|||
На этом уроке мы запустим нашу доску на операционной системе Android. Приготовьте свой планшет/телефон и приступайте к эскпорту и запуску! * Выполнять этот урок не обязательно. Отчёт отправил: 4210. Дмитрий Выполнено за 6 дней 20 час. 34 мин. [Показать отчёт] Научился: Прошёл. Установил на Юнити дополнение для андройда. "Открыл" смартфон в режим разработчика. Проблема, что он ещё не владеет этим видом рекурсии, т.е. не может снимать на камеру сам себя, вместе со мной. ))) Сложности: Сложностей программных не было, были технические. |
|||||
10 | Доска. VIP. Запуск в Интернете |
|
|||
На этом уроке мы отправим наш проект в Интернет. Для этого мы воспользуемся технологией WebGL. Генерация страницы занимает продолжительное время. Засеки момент начала и напиши в отчете сколько времени это заняло. * Выполнять этот урок необязательно. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 21 час. 26 мин. [Показать отчёт] Научился: Сделал. Генерилось примерно минут 25. Потом доска сама открылась в браузере по умолчанию. Сложности: Всё было довольно просто. Но относительно долго. |
|||||
11 |
![]() |
1 тест |
|||
На этом уроке мы познакомимся с архитектурой проекта, посмотрим на предстоящее путешествие с высоты птичьего полёта. Задание: написать, что для вас в этом плане самое простое, а что - самое сложное. Отчёт отправил: 4210. Дмитрий Выполнено за 29 мин. [Показать отчёт] Научился: Собственно, это обзорный урок, рисующий общую картину, и проясняющий этапы создания игры. Статьи прочитал. |
|||||
12 | Классы. Шахматная библиотека |
2 теста |
|||
На данном уроке мы начинаем создание шахматных классов на языке C#, которые позволят проверять правила игры. Для этого мы напишем библиотеку, которая сможет для любой шахматной позиции определить возможность любого хода. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 18 час. 20 мин. [Показать отчёт] Научился: Ещё раз повторил создание, добавление и тестирование библиотеки. Всё фурычит))) Сложности: Всё было просто. |
|||||
13 | Классы. Цветная фигура |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы рассмотри схему библиотеки dll, которая поможет нам сориентироваться в дальнейших действиях. Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 5 мин. [Показать отчёт] Научился: Всё глубже погружаемся в механику игры. Сложности: Всё было просто и понятно. |
|||||
14 | Классы. Квадратная площадь |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим структуру классов с минимально необходимым кодом. Отчёт отправил: 4210. Дмитрий Выполнено за 3 час. 7 мин. [Показать отчёт] Научился: Разные конструкторы при создании структуры. Проверка на дислокацию и корректность записи. Сложности: ВЫДАЁТ ОШИБКУ. НЕ ПОЙМУ, В ЧЁМ ДЕЛО. Может взгляд "замылен", но по моему всё написал правильно. |
|||||
15 | Классы. Фигурой марш! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим классы для хранения и перемещения фигур по клеткам. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 24 мин. [Показать отчёт] Научился: Чувствую, количество объектов, о которых нужно помнить и учитывать их, нарастает, как снежный ком. )) Сложности: Всё было понятно. |
|||||
16 | Классы. Квадратная матрица |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Board(), который будет заниматься доской и работать с FEN. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 17 час. 28 мин. [Показать отчёт] Научился: Продолжаем создавать правила. Тут разбирали механику хода, и всех сопутствующих действий, типа смены цвета "ходящего". Сложности: Всё было просто и понятно. |
|||||
17 | Классы. Стой, кто идёт! |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы создадим класс Moves(), который будет заниматься проверкой возможности хода. Отчёт отправил: 4210. Дмитрий Выполнено за 57 мин. [Показать отчёт] Научился: Научился делать хитрые проверки )) Сложности: Всё было просто и понятно. Ошибку пока не нашёл. |
|||||
18 | Классы. Шахматная бюрократия |
|
|||
Мы продолжаем создание шахматных классов на языке C#, которые позволят проверять правила игры. На этом уроке мы допишем класс Chess(). Отчёт отправил: 4210. Дмитрий Выполнено за 22 мин. [Показать отчёт] Научился: Работаем! Сложности: Всё было просто и понятно. |
|||||
19 | Классы. Консольная доска |
1 тест |
|||
Мы приступаем к написанию тестов для нашей библиотеки. На этом уроке мы создадим функционал для отображения доски и исправим старую ошибку копипаста. Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 17 мин. [Показать отчёт] Научился: Позанимались оформлением консоли, исправили ошибки. Сложности: Опять старые ошибки на компьютере с ВижуалСтудио 2013. На другом компе с 2017 всё работало. |
|||||
20 | Классы. ВТОРОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Мы создали все основные классы нашего проекта. Твоя задача - нарисовать UML схему созданных классов. Нарисовать схему значительно проще, когда проект уже готов. Поэтому задание не сложное, но очень, очень полезное и нужное. Используй иерархическую структуру Solution Explorer в VisualStudio. Нарисовать можно от руки, либо в сервисе draw.io. Можно использовать любой другой *не автоматический* инструмент рисования. Важно сделать это самостоятельно, а не сгенерить программой! Поэтому рисуй сам. * Не забывайте потом дорисовывать схему в процессе добавления новых методов в классах. Отчёт отправил: 4210. Дмитрий Выполнено за 3 дня 45 мин. [Показать отчёт] Научился: Очень интересны мнения знающих. Схему делал первый раз, 100% где-то напортачил. Сложности: Ну, это была новая тема. Непривычно. Но, думаю, полезно) |
|||||
21 | Алгоритмы. Волшебные шахматы |
1 тест |
|||
Мы приступаем к написанию шахматных алгоритмов. На этом уроке мы добавил в класс Board() необходимые свойства и реализуем парсинг передаваемого FEN. Отчёт отправил: 4210. Дмитрий Выполнено за 5 час. 14 мин. [Показать отчёт] Научился: Тут мы инициализировали расположение фигур на доске. Тут подумал, что королева рядом с ладьёй таки может быть. После рокировки. (понятно, в примере другой случай) Сложности: Всё было понятно. |
|||||
22 | Алгоритмы. Сборка фена |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем формирование текущей позиции в формате FEN. Отчёт отправил: 4210. Дмитрий Выполнено за 3 час. 11 мин. [Показать отчёт] Научился: Тут мы заново собирали FEN в корректной форме. СтрингБилдер - удобная штука, если знать, как пользоваться! Сложности: Всё было просто и понятно. |
|||||
23 | Алгоритмы. Генератор ходов |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы начинаем реализацию проверок можно ли пойти с одной клетки на другую. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 27 мин. [Показать отчёт] Научился: Тут мы делали проверку на возможность хода для фигур нужного цвета. Сложности: Есть проблемка: где-то пропустил момент (не вовремя моргнул, видимо), когда мы прописывали изменения в ФЭН после хода. У меня позиция всегда остаётся изначальной. Вот тот код, который сейчас у меня в классе "Чесс": public class Chess { public string fen { get { return board.fen; } } Board board; Moves moves; public Chess(string fen = "brnqknrb/pppppppp/8/8/8/8/PPPPPPPP/RKBNQBNR w KQkq - 0 1") { board = new Board(fen); moves = new Moves(board); } Chess(Board board) { this.board = board; moves = new Moves(board); } public Chess Move(string move) { FigureMoving fm = new FigureMoving(move); if(!moves.CanMove(fm)) return this; Board nextBoard = board.Move(fm); Chess nextChess = new Chess(nextBoard); //Color color = Color.white; //color = color.FlipColor(); return nextChess; } public char GetFigureAt(int x, int y) { Square square = new Square(x, y); Figure figure = board.GetFigureAt(square); //square.OnBoard(); return figure == Figure.none? '.': (char)figure; } public IEnumerable<string> YieldValidMoves() { foreach (FigureOnSquare fs in board.YieldMyFiguresOnSquares()) foreach (Square to in Square.YieldBoardSquares()) { FigureMoving fm = new FigureMoving(fs,to); if(moves.CanMove (fm)) yield return fm.ToString(); } } } А вот класс "Программ": static void Main(string[] args) { Chess chess = new Chess(); while (true) { Console.WriteLine(chess.fen); Print(ChessToAscii(chess)); //foreach (string moves in chess.YieldValidMoves()) //Console.WriteLine(moves); string move = Console.ReadLine(); //if (move == "") break; chess = chess.Move(move); } } static string ChessToAscii(Chess chess) { StringBuilder sb = new StringBuilder(); sb.AppendLine(" +-----------------+"); for (int y = 7; y >= 0; y--) { sb.Append(y + 1); sb.Append(" | "); for (int x = 0; x < 8; x++) sb.Append(chess.GetFigureAt(x, y) + " "); sb.AppendLine("|"); } sb.AppendLine(" +-----------------+"); sb.AppendLine(" A B C D E F G H "); return sb.ToString(); } static void Print(string text) { ConsoleColor old = Console.ForegroundColor; foreach (char x in text) { if (x >= 'a' && x <= 'z') Console.ForegroundColor = ConsoleColor.Red; else if (x >= 'A' && x <= 'Z') Console.ForegroundColor = ConsoleColor.White; else Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(x); } Console.ForegroundColor = old; } } Ну и class FigureMoving { public Figure figure { get; private set; } public Square from { get; private set; } public Square to { get; private set; } public Figure promotion { get; private set; } public FigureMoving( FigureOnSquare fs, Square to, Figure promotion = Figure.none) { this.figure = fs.figure; this.from = fs.square; this.to = to; this.promotion = promotion; } public FigureMoving(string move)// Pe2e4, Pe7e8Q { // 01234 012345 this.figure = (Figure)move[0]; this.from = new Square(move.Substring(1, 2)); this.to = new Square(move.Substring(3, 2)); if (move.Length == 6) this.promotion = (Figure)move[5]; else this.promotion = Figure.none; } public override string ToString() { return ((char)figure).ToString() + from.Name + to.Name; } } |
|||||
24 | Алгоритмы. Куда идёт Король |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли King пойти с одной клетки на другую. Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 54 мин. [Показать отчёт] Научился: Простая (для прописывания возможных ходов) фигура - пешка. Ходит в одном направлении на одну или две клетки, бьёт только в двух (на клетку по диагонали). Король, ходящий и бьющий на восемь сторон в этом плане сложнее. Самый сложный, ПМСМ, конь. На втором месте - ферзь. Сложности: Всё ещё под вопросом, почему не изменяется ФЭН, после команды с консоли? Пример показан на скриншоте. |
|||||
25 | Алгоритмы. Ночью с Конём |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем проверку может ли Knight пойти с одной клетки на другую. Отчёт отправил: 4210. Дмитрий Выполнено за 18 мин. [Показать отчёт] Научился: Ну, по вопросу на прошлом уроке я ответил, что конь - самая сложная для проверки фигура. Думал, ходы у него не прямолинейные, а "заковыристые". (осталось такое впечатление со времени моих детских попыток разобраться в шахматах) Оказалось - наоборот))) Сложности: Всё ещё не пойму, где напортачил. Фигуры не ходят, ФЭН не изменяется, а остаётся изначальным. Скрины наглядные приводил в прошлых уроках. |
|||||
26 | Алгоритмы. Дальнобойщики |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы переходим к дальнобойным фигурам. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 13 час. 14 мин. [Показать отчёт] Научился: Дописали правила хода для всех фигур кроме пешек. Сложности: Всё та же проблема с неотображением изменений в ФЭН. Могу проверять только расположение, но не ходы фигур. |
|||||
27 | Алгоритмы. Храбрая пешка |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы приступаем к реализации алгоритмов самой сложной фигуры: Pawn. Отчёт отправил: 4210. Дмитрий Выполнено за 8 час. 2 мин. [Показать отчёт] Научился: Очень интересно. Вообще, вся тема постановки корректных условий увлекает! Сложности: На этом этапе начинаю потихоньку путаться в заготовленных нами вспомогательных методах, которые мы используем в условиях. |
|||||
28 | Алгоритмы. Четвёртое превращение |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем превращение Pawn в одну из четырёх фигур: Queen, Knight, Bishop и Rook. Отчёт отправил: 4210. Дмитрий Выполнено за 57 мин. [Показать отчёт] Научился: Признаться, превращение было для меня чуть-ли не самой загадочной задачей. Теперь увидел, что всё решается в рабочем порядке. Сложности: Всё было понятно. |
|||||
29 | Алгоритмы. Рефакторинг на доске |
1 тест |
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся рефакторингом. Отчёт отправил: 4210. Дмитрий Выполнено за 49 мин. [Показать отчёт] Научился: Соприкоснулся с рефакторингом. Было познавательно. Сложности: Всё было понятно. Огромное спасибо спасшему меня Алексею (17535), который обнаружил неуловимую для меня ошибку. |
|||||
30 | Алгоритмы. Допрыгалась! |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы займёмся взятием пешкой на проходе. Отчёт отправил: 4210. Дмитрий Выполнено за 59 мин. [Показать отчёт] Научился: Разобрались с пешками. Сложности: Всё понятно, всё работает. |
|||||
31 | Алгоритмы. Королевский паркур |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы реализуем рокировку. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 7 мин. [Показать отчёт] Научился: Прописывали правила для рокировки. Сложности: Всё было понятно. |
|||||
32 | Алгоритмы. Защита короля |
|
|||
Мы продолжаем написание шахматных алгоритмов. На этом уроке мы будем защищать короля от ШАХа. Отчёт отправил: 4210. Дмитрий Выполнено за 8 час. 34 мин. [Показать отчёт] Научился: По отдельности все фрагменты "рулз" я понимаю. Но когда всё работает вместе, ощущается, как маленькое чудо. Сложности: Всё понятно. |
|||||
33 | Алгоритмы. Шах и Мат! |
|
|||
Мы заканчиваем написание шахматных алгоритмов. На этом уроке мы реализуем возврат ситуации на доске. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 50 мин. [Показать отчёт] Научился: Ну вот мы и закончили с алгоритмами! Стиль преподнесения материала мне нравится. Сложности: Всё было понятно. |
|||||
34 | Алгоритмы. ТРЕТИЙ ФИНАЛЬНЫЙ УРОК |
|
|||
На этом уроке мы исправим одну ошибку и добавим ещё один вариант метода GetFigureAt(string xy). Ваше задание - записать подробный отзыв об алгоритмической части проекта. Отчёт отправил: 4210. Дмитрий Выполнено за 20 мин. [Показать отчёт] Научился: В первую очередь хочу поблагодарить Евгения Витольдовича. Благодарю: Спасибо!)) Очень понравилось что курс состоит из коротких уроков-этапов, каждый из которых легко уложится в голове новичка. Плюс, это психологически комфортнее: серия коротких быстродостижимых успехов поддерживает мотивацию. Уроки прикладные - мы не учим тему из Умной Книжки, а прописываем код для конкретной задачи в реальной программе (игре), которую уже на этом этапе можно "пощупать" в консоли. И каждое действие Автор сопровождает объяснением; что, зачем, как и почему. Живое сообщество - если возникают вопросы или проблемы, можно написать на сайте, и вам ответят. Только на протяжении этого курса это случилось со мной несколько раз. Отвечают быстро. Короче, нравится. Сложности: ==="Что было самым сложным?"=== Вопрос из серии "Вы уже перестали пить коньяк по утрам?"))) Типа, по любому были сложности, опиши самую ужасную. ) Есть же люди, которые, даже если всё было просто и понятно, заморочатся, и придумают сложности. А сложностей у меня не было! |
|||||
35 | Алгоритмы. VIP. Шахматное супертестирование |
|
|||
На этом уроке мы проверим корректность ваших алгоритмов. Для этого мы прогоним супер-тест по генерации всех вариантов. * Выполнять этот урок необязательно. Ссылка: Сайт с результатами тестирования Отчёт отправил: 4210. Дмитрий Выполнено за 4 час. 10 мин. [Показать отчёт] Научился: Что-то у меня контрольное число не совпадает. Судя по всему, у меня какая-то фигура может делать другое кол-во ходов. Буду последовательно перепроверять. Настораживает лишь, что число получается кратным первому ходу из начальной позиции. Возможно, программа четыре раза (я поставил четыре "полухода") считает первый ход? Сложности: Самое сложное ещё предстоит: найти баг ))) |
|||||
36 | Алгоритмы. VIP. Можно пройти? |
|
|||
На этом уроке мы немного порефакторим и добавим очень полезную функцию. Отчёт отправил: 4210. Дмитрий Выполнено за 10 мин. [Показать отчёт] Научился: Просто вынесли проверку из Мув в отельный метод. Сложности: Норм. |
|||||
37 | Алгоритмы. VIP. Как пройти в библиотеку |
|
|||
На этом уроке мы подготовим библиотеку ChessRules. Для этого мы скомпилируем её в необходимой версии .NET и проверим работоспособность в Unity проекте. Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 14 мин. [Показать отчёт] Научился: Насторожила фраза про то, что всё будет переделано... Сложности: Всё было просто. |
|||||
38 | Интерфейс. План действий |
|
|||
На этом уроке мы обсудим дальнейший план действий.
Отчёт отправил: 4210. Дмитрий Выполнено за 28 мин. [Показать отчёт] Научился: Второй раз, в уже знакомой среде, подготавливать объекты гораздо проще. Сложности: Ещё не полностью разобрался с интерфейсом Юнити. Но уже легче. |
|||||
39 | Интерфейс. Генерация объектов |
|
|||
На этом уроке мы сгенерируем шахматную доску с базовыми объектами на ней. Отчёт отправил: 4210. Дмитрий Выполнено за 54 мин. [Показать отчёт] Научился: Размещаем объекты "под камеру" )) Сложности: Не понимаю, почему у меня видно выстроившуюся из клеток доску только во время паузы, а когда "плей" - пустой синий фон. |
|||||
40 | Интерфейс. Начальная позиция |
|
|||
На этом уроке мы добавим ранее созданную библиотеку ChessRules.dll в проект на Unity. Отчёт отправил: 4210. Дмитрий Выполнено за 10 час. 19 мин. [Показать отчёт] Научился: Добавили Правила в скрипт и начали работать с его элементами. Сложности: КАМЕРА НЕ ОТОБРАЖАЕТ ГРАФИКУ. На паузе всё видно: клетки выстраиваются в доску, фигуры занимают свои места. Но при работе камеры (в режиме "плей") просто синий фон. Возможно, я где-то в настройках камеры убрал или добавил "галочку", и теперь не вижу её "замыленным" взглядом. |
|||||
41 | Интерфейс. Ход делегата |
|
|||
На этом уроке мы активируем проверку ходов, которую реализовали в ChessRules.dll. Отчёт отправил: 4210. Дмитрий Выполнено за 49 мин. [Показать отчёт] Научился: Работаем с начальными и конечными координатами хода фигуры. Используем делегат. Сложности: У меня почему-то отображается другой результат. Конечные координаты отличаются, и строчки в консоли печатаются одна за другой. (видно на скриншоте) |
|||||
42 | Интерфейс. Проверка хода |
|
|||
Мы продолжаем реализацию необходимого функционала для активации проверки ходов на основе ChessRules.dll. Отчёт отправил: 4210. Дмитрий Выполнено за 4 дня 17 час. 39 мин. [Показать отчёт] Научился: Теперь пешка е2е4 ходит, и даже (успел выполнить пару следующих уроков) подсвечивается. Но больше не ходит никто и никуда. И подсветка на остальных фигурах, соответственно, не работает. Проблема появилась тут, до работы с подсветкой ходов. Сложности: Прилагаю скрин с кодом. Я пересмотрел уроки, и, вроде, ошибок нет. (но они есть))) |
|||||
43 | Интерфейс. VIP. Клетки отправления |
|
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, с которых можно ходить. Отчёт отправил: 4210. Дмитрий Выполнено за 5 час. 37 мин. [Показать отчёт] Научился: Странное что-то выдаёт: При выборе любой фигуры, выбирается белая пешка. Красным подсвечивает все 64 клетки. Ходить выбранная пешка никуда не желает - возвращается на е2. Ещё и про ошибку какую-то в Консоли пишет. В скрипте, вроде, всё верно. Можно посмотреть на скринах. Сложности: Не "было", а ещё предстоит: разобраться, где напортачил) |
|||||
44 | Интерфейс. VIP. Клетки прибытия |
1 тест |
|||
Это бонусный урок, выполнять его не обязательно. На данном уроке мы реализуем подсветку тех клеток, на которые можно ходить. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 28 мин. [Показать отчёт] Научился: Отбирать только ходы "подцепленной" фигуры. Сложности: Всё было просто. Проблема у меня где-то в библиотеке "ЧессРулз". ФЭН не изменяется. Отпускаю пешку в конечной клетке, а она прыгает на исходную. Ну, и не подсвечивается. |
|||||
45 | Интерфейс. Щепотка рефакторинга |
1 тест |
|||
На этом уроке мы начинаем подготовку к превращению пешки в одну из четырёх фигур. Для начала проведём небольшой рефакторинг. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 13 мин. [Показать отчёт] Научился: Убрали повторяющиеся строчки в отдельные методы. Сложности: Всё просто, всё работает. |
|||||
46 | Интерфейс. Выставка фигур |
|
|||
На этом уроке мы продолжаем подготовку к превращению пешки в одну из четырёх фигур. Теперь нам надо подготовить фигуры, в которые будем превращать. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 5 мин. [Показать отчёт] Научился: Собственно, создали возможность выбора для "продвижения" пешки. Для обоих цветов. Сложности: Вылез старый глюк, где может ходить только белая пешка е2, и всё. Соответственно, ни подсветки, ни возможности выбора другой фигуры... |
|||||
47 | Интерфейс. Долгожданное превращение |
|
|||
На этом уроке мы наконец превратим нашу пешку в одну из четырёх фигур. Отчёт отправил: 4210. Дмитрий Выполнено за 46 мин. [Показать отчёт] Научился: Прописывали дополнение, позволяющее не оканчивать "полуход", а выбрать фигуру для превращения в неё пешки. Исправляли недочёты. Сложности: Всё то же: ходит только одна пешка. И только с е2 на е2, как видно на скрине. |
|||||
48 | Интерфейс. ЧЕТВЁРТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о четвёртой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4210. Дмитрий Выполнено за 19 час. 49 мин. [Показать отчёт] Научился: Урок не учебный, а итоговый. Следовательно, будем подводить промежуточные итоги. За исключением одной мелкой проблемки, которую я сам себе когда-то устроил по невнимательности, и теперь никак не "выловлю", очень доволен! Короткие "микро-тематические" уроки хорошо укладываются в памяти, добавляя ясности в общую картину. Курс практический и прикладной, что выгодно отличает его от основной массы: делаем игру и наблюдаем, как она постепенно "оживает" и обретает свою конечную форму. Решаем, кроме основной, возникающие по ходу работы мелкие задачи. Задействуем целый пласт смежных технологий. Первый за долгое время курс, который не хочется бросать. Интересно, что же будет дальше! Сложности: Собственно, сложность: влачащаяся хвостиком мелкая проблемка, из-за которой я могу ходить только пешкой е2е2 )) При этом, в Консоли всё пашет. Белые и чёрные ходят по очереди и следуя прописанным правилам. В Юнити же... не фурычит, и не ясно, почему. Сверял код с исходным, из видеоуроков, ошибок не обнаружил. |
|||||
49 | База данных. Management в студию! |
|
|||
На этом уроке мы приступаем к созданию БД для нашего сервера шахматы онлайн. Отчёт отправил: 4210. Дмитрий Выполнено за 3 мин. [Показать отчёт] Научился: Сервер у меня уже был установлен для других проектов. Сложности: Ничего. |
|||||
50 | База данных. Планирование |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы спроектируем схему нашей БД. Отчёт отправил: 4210. Дмитрий Выполнено за 4 дня 23 час. 15 мин. [Показать отчёт] Научился: Тут мы обсудили, прикинули и набросали таблицы БД и их взаимодействие. Сложности: Ничего. |
|||||
51 | База данных. Упрощение |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы упростим схему нашей БД. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 45 мин. [Показать отчёт] Научился: Я бы таблицу игроков оставил с логином и паролем. Сложности: Ничего. |
|||||
52 | База данных. Созидание |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы наконец создадим нашу базу данных для онлайн шахмат. Отчёт отправил: 4210. Дмитрий Выполнено за 6 час. 16 мин. [Показать отчёт] Научился: Освежил в памяти процесс создания таблицы. Сложности: Всё довольно просто. |
|||||
53 | База данных. VIP. Таблицы на вырост |
|
|||
Мы продолжаем создание БД для нашего сервера шахматы онлайн. На данном уроке мы создадим дополнительные таблицы, которые понадобятся для реализации полноценной онлайн игры. Отчёт отправил: 4210. Дмитрий Выполнено за 30 мин. [Показать отчёт] Научился: Дополнительная практика. Сложности: Всё просто. |
|||||
54 | База данных. VIP. Красивая диаграма |
|
|||
На данном уроке мы нарисуем диаграмму нашей БД.
Отчёт отправил: 4210. Дмитрий Выполнено за 12 мин. [Показать отчёт] Научился: Рисуем! Сложности: Проблема из предыдущих частей. В Юнити не происходят ходы. Ещё не решил. С Диаграммами проблем не было. |
|||||
55 | База данных. ПЯТЫЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о пятой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4210. Дмитрий Выполнено за 11 мин. [Показать отчёт] Научился: Пятая часть курса была самой короткой и, наверное, самой простой. Дело в том, что с майкрософтовской СУБД дело имел раньше. Прошёл без затруднений. Сложности: Всё было просто. |
|||||
56 | Сервер. Последняя версия |
|
|||
На данном уроке мы приступаем к созданию серверной части нашего онлайн проекта по шахматам. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 4 час. 1 мин. [Показать отчёт] Научился: Вспомнил NVC. Немного коснулись API, нашли замену сакраментальному "Хэллоу ворлд!" ))) Сложности: Всё понятно и хорошо объяснено. |
|||||
57 | Сервер. Райский Эдем - EDM |
|
|||
На этом уроке мы создадим EDM - Entity Data Model.
Отчёт отправил: 4210. Дмитрий Выполнено за 20 мин. [Показать отчёт] Научился: "Прикрепили" базу данных Гейм к проекту. Сложности: Всё было просто. |
|||||
58 | Сервер. Новая игра на JSON |
|
|||
На этом уроке мы изменим формат вывода с XML на JSON.
Отчёт отправил: 4210. Дмитрий Выполнено за 34 мин. [Показать отчёт] Научился: Переключились на Джейсон. Добавили через модель "дб" в таблицу новую строчку. Сложности: Без сложностей. |
|||||
59 | Сервер. Официант без логики |
|
|||
На этом уроке мы будем упрощать наш ChessController.
Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 22 мин. [Показать отчёт] Научился: Рефакторинг и добавление ДЛЛки. Сложности: Что-то не пойму, где напортачил. После подключения библиотеки результат не изменился. Новая игра не добавилась, не отобразилась ни в БД, ни в браузере. Причём, библиотеку видно. Видно (при наведении) что "Чесс" передаёт нужный ФЭН. А результат отображается старый. |
|||||
60 | Сервер. Ваш ход! |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем выполнение ходов. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 31 мин. [Показать отчёт] Научился: Делали возможность совершать ход (прописывая его в адресной строке) Сложности: Вылезла старая проблема ЧессРулз. Не ходит ни одна фигура, кроме пешки е2е4, да и та возвращается на исходную позицию. То же самое у меня происходило и в Юнити. Самое интересное, что при тестировании в Консоли всё ок. Ходы (полуходы) совершаются, считаются, и библиотека на них адекватно реагирует, следя за выполнением правил. Вопрос: что добавилось (или убралось) там, чего нет в Юнити и в этом варианте? |
|||||
61 | Сервер. Шахматная Идемпотентность |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы обсудим Шахматную Идемпотентность. Напишите своими словами, что такое Идемпотентность. Отчёт отправил: 4210. Дмитрий Выполнено за 1 час. 43 мин. [Показать отчёт] Научился: Добавили возможность находить конкретную игру по АйДи, и добавили эту возможность в адресную строку. Сложности: Все тесты проходит корректно. Всё ещё "довлеет" надо мной старый баг, влачащийся со времён "ЧессРулз". В конце полухода позиция или не просто не меняется, или снова становится начальной. В Юнити было так же, в Консоли всё работало отлично, ходы меняли позицию, счётчик ходов работал, фигуры ходили корректно. Разумеется, т.к. позиция не меняется, в БД изменения тоже не сохраняются. |
|||||
62 | Сервер. Китайская ничья |
|
|||
Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы реализуем завершение игры при сдаче. Отчёт отправил: 4210. Дмитрий Выполнено за 50 мин. [Показать отчёт] Научился: Прописали возможность завершения игры. Сложности: Всё прошло без проблем. Статус игры меняется по команде, новая игра создаётся. Всё добавляется в БД. |
|||||
63 | Сервер. ШЕСТОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
Напишите отзыв о шестой части курса: что получилось, что было сложным, что ещё вы добавите в программу. Отчёт отправил: 4210. Дмитрий Выполнено за 11 мин. [Показать отчёт] Научился: Прежде всего, огромная благодарность лично Евгению Витольдовичу, который в Он-Лайн режиме проверил мой проект и нашёл старую (я бы даже сказал, "застарелую") ошибку, которая "мешала жить" уже нескольким версиям проекта. В Юнити у меня не срабатывали ходы по той же причине: не правильно прописано условие в одной из проверок. Теперь по всей шестой, "Серверной" части курса. Довольно простая и лаконичная часть получилась. Делали базовые вещи, простраивали взаимодействие с Клиентом и Базой Данных. В итоге - всё работает, и можно идти дальше. Сложности: Сложно, вообще, найти у себя ошибку, не до конца уместив в голове весь проект и точно зная, что за что отвечает. Например, записи с Сервера в БД. Почему в предыдущей попытке благополучно добавилась запись новой игры, а в этой (вдруг) не сработало? И начинаешь шаг за шагом перепроверять, что сделал, а что упустил. |
|||||
64 | Хостинг. Регистрация аккаунта |
|
|||
Приступаем к размещению нашего сервера в интернете. Для этого нам потребуется Windows-хостинг с поддержкой ASP.NET Чтобы мы были на одной волне и смогли проработать всё вместе, пожалуйста зарегистрируйтесь на этом хостинг-сервисе: Ссылка для регистрации на хостинге: https://www.reg.ru/?rlink=reflink-30461 Отчёт отправил: 4210. Дмитрий Выполнено за 3 час. 31 мин. [Показать отчёт] Научился: Сейчас регестрировался, вышло немного в другой последовательности. Результат тот же - аккаунт. )) Сложности: Всё было понятно. |
|||||
65 | Хостинг. Лучше заплатить |
|
|||
На этом уроке мы выберем план, доменное имя, укажем контактную информацию. Отчёт отправил: 4210. Дмитрий Выполнено за 3 час. 5 мин. [Показать отчёт] Научился: Тоже новый опыт, заполнение данных и оплата. Сложности: Дизайн поменялся, поля в формах расположены по другому, да и цены... )) |
|||||
66 | Хостинг. Доступ по FTP |
|
|||
На этом уроке мы установим пароль для подключения к хостингу по FTP. Напишите, какой FTP-клиент вы используете и приложите скриншот вашей FTP программы с подключением к хостингу. Отчёт отправил: 4210. Дмитрий Выполнено за 6 час. 2 мин. [Показать отчёт] Научился: Всё благополучно отобразилось. Учились работать с фтп, и работать с файлами дистанционно. Сложности: Не разобрался, как создать новый файл в коммандере ))) |
|||||
67 | Хостинг. Публикация проекта |
|
|||
На этом уроке мы настроим публикацию проекта из Visual Studio. Выполните все шаги и опубликуйте проект. Приложите скриншот Visual Studio с логами публикации и содержимое FTP каталога после публикации. Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 5 мин. [Показать отчёт] Научился: Научился публиковать из Вижуал Студио. (пока условно "пустой" проект) Сложности: Прервалась связь с интернетом. При попытке опубликовать повторно - выдавало ошибку. Пока не сообразил вручную, через Тотал Коммандер удалить успевшие загрузиться файлы, дальше дело не пошло. Вижуал Студио сама удалить или перезаписать не могла. Ну, и удалил все файлы, идя "в ногу" с видео.)) Ещё во втором сразу не прописал "путь". Пришлось перезаливать. |
|||||
68 | Хостинг. Перенос базы данных |
|
|||
На этом уроке мы перенесём базу данных на сервер и подключимся к ней из скрипта. Отчёт отправил: 4210. Дмитрий Выполнено за 2 час. 4 мин. [Показать отчёт] Научился: Буду переделывать. Нужен совет. Сложности: По ссылке решения проблемы выполнял пошагово. Но не нашёл, как переключить на более раннюю версию менеджера: IITCUK\SQLSERVER2008, чтобы не выполнять скрипт в последней версии. Может, кто-то знает, и подскажет? В моей версии (14,0,1000,169) Выдаёт ошибку и пишет, что БД с таким именем уже существует. Как сделать "даунгрейд" до IITCUK\SQLSERVER2008 ? |
|||||
69 | Хостинг. VIP. Двойные стандарты |
|
|||
На этом уроке мы обсудим нюансы с публикацией очередной версии серверной части на хостинге. Отчёт отправил: 4210. Дмитрий Выполнено за 53 мин. [Показать отчёт] Научился: Изменяли конфигурации релиза, и проверяли. Сложности: На прошлом уроке у меня случился "затык" - у меня более новая, чем на хостинге, версия СУБД 14.000... В предложенном решении по ссылке на определённом этапе нужно было открыть модифицированный файл sql в старой версии СУБД. А как? Короче, дальше этого этапа я там не смог продвинуться. На этом уроке "api/Versions" работает, как часы, а "api/Chess", как видно на скриншоте, выдаёт ошибку. База данных-то не подгружена. |
|||||
70 | Хостинг. СЕДЬМОЙ ФИНАЛЬНЫЙ УРОК |
|
|||
В этой части мы разместили сервер не хостинге. Шахматная серверная программа нашла пристанище в интернете. Наконец-таки можно будет переходить к игре по сети. Напишите в отчёте, всё ли получилось и по какому адресу можно найти ваш серверный API. Отчёт отправил: 4210. Дмитрий Выполнено за 1 день 23 час. 32 мин. [Показать отчёт] Научился: Застопорился на загрузке базы данных. Версии на совпадают, у хостинга версия старая. Решить проблему, как описано по ссылке в уроке, не получается. Там переделанный под старый формат скрипт нужно открыть в старой версии СУБД, которой я не нашёл. По отзывам, люди делали базу данных уже "на месте", вручную. Может, взгляд замылился, может знаний недостаточно, но как создать новую "на месте" я не обнаружил. Добавить новую, или выбрать существующую - да, а создать - нет. Дважды задавал вопрос Мастеру, но видно, он сейчас занят другими проектами. Пока, чтобы не терять темп, прохожу "Шахматы на Джава Скрипт", которые шли в пакете. Основной курс застопорился. Сложности: Разобраться, как сотворить БД вручную на хостинге. Так и не смог. |
|||||
71 | Клиент. Достучаться до облака |
|
|||
На этом уроке мы приступаем к завершающему этапу по созданию клиент-серверной игры "Онлайн шахматы". |
|||||
72 | Клиент. Дедовские методы |
|
|||
На этом уроке мы выделим FEN из полученной json строки. | |||||
73 | Клиент. Ход в мешке |
|
|||
На этом уроке мы научимся отправлять на сервер наш ход. | |||||
74 | Клиент. Серверные пешки |
|
|||
На этом уроке мы используем ранее созданный класс Client() в наш проект на Unity, чтобы можно было поиграть с GUI. |
|||||
75 | Клиент. Следы невиданных ходов |
|
|||
На этом уроке мы реализуем отправку хода через GUI. | |||||
76 | Клиент. Фоновое обновление |
|
|||
На этом уроке мы реализуем функцию обновления текущего состояния на доске. |
|||||
77 |
![]() |
|
|||
Поздравляю вас с завершением нашего эпического курса по созданию клиент-серверной игры в шахматы по сети! Запишите живое видео, где будет видно, что в игру можно поиграть с двух разных устройств/компьютеров. Расскажите на видео о своём подвиге. Чем курс понравился, что было сложно, что было интересно, что можно будет добавить. |
|||||
78 | Рефакторинг. С чего начать? |
|
|||
На этом уроке мы начинаем рефакторинг кода клиентской части на Unity. |
|||||
79 | Рефакторинг. Координатные трансформации |
|
|||
На этом уроке мы продолжаем рефакторинг и сейчас мы выделим статические элементы. |
|||||
80 | Рефакторинг. Чёрный ящик |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы займёмся словарями. |
|||||
81 | Рефакторинг. Интерфейсная прослойка |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим интерфейс ICreatable. |
|||||
82 | Рефакторинг. Ящик с фигурами |
1 тест |
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы сделаем класс Box() абстрактным. |
|||||
83 | Рефакторинг. Многоклеточная сущность |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxSquares(). |
|||||
84 | Рефакторинг. Вынос переноса |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetPosition(). |
|||||
85 | Рефакторинг. Спрайт, не дай себя заинтерфейсить |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс Box().SetSpriteAt(). |
|||||
86 | Рефакторинг. Клетка в клетке |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём и разделим класс ShowSquare(). |
|||||
87 | Рефакторинг. Шахматная независимость |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы перенесём некоторые функции в класс BoxSquares(). |
|||||
88 | Рефакторинг. Хоровод из четырёх фигур |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы порефакторим функционал превращения пешки. |
|||||
89 | Рефакторинг. Волшебник изумрудного ящика |
|
|||
Мы продолжаем рефакторинг нашего кода. На данном уроке мы создадим класс BoxPromots(). |
|||||
90 | Рефакторинг. Потерянная пешка |
|
|||
На этом уроке мы вернёмся к нашей библиотеке для исправления старой ошибки: пешка может превратиться в чужую фигуру ил остаться пешкой. |
|||||
91 | Рефакторинг. Класс шахматной игры |
|
|||
ЭТОТ УРОК НУЖНО ПЕРЕЗАПИСАТЬ. ДЛЯ ЭТОГО МНЕ НУЖЕН ПРОЕКТ ДО ЕГО ВЫПОЛНЕНИЯ. ПОЖАЛУЙСТА ПЕРЕД ВЫПОЛНЕНИЕМ ЭТОГО УРОКА СОЗДАЙТЕ АРХИВ ПРОЕКТА И ПРИШЛИТЕ ЕГО МНЕ. Мы на финишной прямой нашего рефакторинга. На данном уроке мы вынесем логику игры в отдельный класс Game(). |
|||||
92 | Рефакторинг. Двухэтажное превращение |
|
|||
Мы всё ближе и ближе к финишу нашего рефакторинга. На данном уроке мы вынесем оставшуюся логику игры в класс Game(). |
|||||
93 | Рефакторинг. Финальное причёсывание |
|
|||
Мы поздравляем тебя с завершением рефакторинга. На данном уроке мы причешем наши скрипты. |
|||||
94 | Рефакторинг. Последний аккорд |
|
|||
На этом уроке мы заканчиваем наш эпический курс. Получилось здорово. Я доволен результатом. Надеюсь, вы тоже. Мы проделали огромную работу. Каждый стал чуточку умнее и опытнее. |
|||||
95 | VIP. Меню DimanDOSа |
|
|||
1. Создание и размещение кнопки вызова меню и панели с кнопками. 2. Программирование действий по нажатиям кнопок - создание функций и привязка их к событиям нажатия. |
|||||
Итого: 95 видеоуроков |
17 час. 04 мин. 18 тестов |
19 чел. | |||
Финалисты: Дмитрий, Yefim, Tekashnik, Иван Воронин, ser2018, Алексей, Дмитрий Б, alklokov, FireWolf, Andrew, Max, Новопашин Владимир, Красимир Зорбов, Антон, Евгений, Anatoli, Freud, Алена, MaxB . |