На этом уроке мы исправим одну ошибку и добавим ещё один вариант метода GetFigureAt(string xy). Ваше задание - записать подробный отзыв об алгоритмической части проекта.
Дата отправки отчёта:
31 марта 2018 г.
Задание выполнено: за
44 мин.
Чему научился:
Дополнили функцию Chess Move запретом хода под шах, а также сделали перегрузку метода GetFigureAt, позволив задавать координаты клетки не только в виде [x][y], но и строковой переменной в виде "g2".
Что было сложным:
Реализацию алгоритмов постоянно сравнивал с реализацией в курсе "Микрошахматы". На джаваскрипт все функции были реализованы последовательно, без применения классов, в основном, через связку условного оператора "if-else" c булевыми переменными. "Рулонный" вариант реализации кода, т.е., весь код идет непрерывно и последовательно, т.е. процедурное программирование.
В случае "Клиент-серверных шахмат" мы уже задействовали десяток классов, где весь код разделили на логические блоки, в каждом из которых реализуем только определенную часть - параметры самой доски, цвет, все возможные фигуры, правила передвижения каждой из фигур и т.п. В данном случае это уже пример полноценного применения объектно-ориентированного программирования, при котором весь код разбивается на удобные логические блоки, имеет четкую иерархию классов и понятную структуру. При этом код становится более читабельным, и мы имеем возможность в любой момент дорабатывать и дополнять любой из блоков, без необходимости просмотра всего объема кода.
Планирую использовать существующую модель структурирования и иерархии классов в качестве образца при создании своей игры.
Дима, хочу предостеречь тебя от такого вывода. Как видишь, шахматы мне не удалось сразу написать по всем канонам ООП. Сначала были Микрошахматы, потом Мато конём и слоном, только сейчас мне удалось создать красивую ООП модель шахматных правил, хотя и тут есть место рефакторингу. Рекомендую начать создавать игру с минимальным количеством классов, но "процедурным" способом, так как он более понятен. И уже когда будет работать - начать рефакторить. Этому процессу посвящены последние уроки настоящего курса.
Да я понимаю. Я говорю просто о самом структурировании, способе планирования игры с нуля и ее постепенном наполнении. Для ООП и рефакторинга у меня попросту нет базовых знаний, о многих понятиях в рамках курса вроде Yield и многом другом впервые слышу. Unity, ASP, SQL, EF - это все незнакомо. А вот разбиение по классам и взаимосвязь между ними - это можно использовать.
Молодец, поздравляю с завершением очередной части курса. По поводу подхода к реализации игры в данном курсе согласен, но тут тоже не сразу чистое ООП идёт, в последней части курса как раз последние штрихи по поводу модернизации кода по канонам ООП, последние штрихи, но нет предела совершенству. Так что для самостоятельных доработок осталось очень много места. У меня лично на счёт этого курса свои взгляды и я буду реализовывать часть взаимосвязей именно так, как нужно конкретно мне, MSSQL к примеру, не зацепил, до сих пор считаю MySQL лучшей БД для онлайн проектов. Удачи в прохождении и реализации своей игрушки.
Отчёт оценивали: Посетитель+14814. Дмитрий+116880. Константин+16452. Кирилл Шмойлов+117443. WildOrc+11. Евгений Волосатов+18932. Алекс+113417. Chip+1791. Валерий Жданов+110558. Иван Воронин+19156. Dimon+116218. Дмитрий+111582. Родион+1689. Igorenzia+19323. Алексей+19980. Timoha+110494. Алексей В.+116066. Bodrik_torf+1459. Сергей Сергеевич+13922. Александр+14395. Денис+13747. Сергей+18275. Tekashnik+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.