# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | CHESS - Классные фигуры |
3 теста |
|||
Создайте класс для каждой шахматной фигуры. class Rook {} - ладья Knight, конь Bishop, слон Queen, ферзь King, король Pawn, пешка Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 27 мин. [Показать отчёт] Научился: rook == ладья, тура knight == конь, лошадь bishop == слон queen == ферзь, королева king == король pawn == пешка Взаимосвязь классов - одна и та же клетка не может одновременно быть занятой, более чем одной фигурой Методы потребуются для создания правил их перемещения |
|||||
2 | CHESS - Координаты фигур |
2 теста |
|||
Добавьте в каждый класс следующие поля: int x, y - координаты фигуры (от 1 до 8). int price - ценность фигуры (в пешках). void move () { } - метод для передвижения фигуры Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 18 мин. [Показать отчёт] Научился: rook(ладья) стоит 5 пешек knight(конь)стоит 3 пешки bishop(слон)стоит 3 пешки queen(ферзь)стоит 9 пешек король бесценен ) повторяющиеся поля конфигурации положения фигуры можно вынести в класс Config к примеру |
|||||
3 | CHESS - Фигурное катание |
3 теста |
|||
Создайте класс Figure, Переместите в него общие поля, Создайте в нём абстрактный метод move(), Сделайте класс Figure абстрактным. Наследуйте каждую шахматную тварь от класса Figure. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 35 мин. [Показать отчёт] Научился: абстрактный метод в базовом классе подразумевает его обязательное определение в классе-наследнике Если в классе Вы создали хоть один абстрактный метод - будьте любезны абстрактным объявить и класс, где появился абстрактный метод в описании абстрактного метода воздержитесь от использования фигурных скобок - они не нужны после названия абстрактного МЕТОДА и круглых скобок ставьте смело точку с запятой Полиморфизм чудит так: класс-наследник может запускать методы суперкласса, но если этот же самый метод переопределяется в самом классе-наследнике - запустится уже метод из класса-наследника И Обратно - удалили в наследнике метод, который есть и в суперклассе - при обращении к методу, отработает уже тот что в суперклассе (ведь переопределения в наследничке нетути) |
|||||
4 | CHESS - Перебор фигур |
1 тест |
|||
На этом уроке мы увидим, в чём прелесть использования базового абстрактного класса - у нас появится возможность перебирать все фигуры по списку и выполнять для всех однотипные действия. Без базового класса нам пришлось бы КАЖДЫЙ РАЗ выписывать все классы по отдельности... Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 44 мин. [Показать отчёт] Научился: создали список фигур с помощью нового объекта ArrayList организовали перемещение фигур циклом для ArrayList в режиме отладки Step Into (F5) - продолжить со входом в функции |
|||||
5 | CHESS - Чудеса Абстракционизма |
3 теста |
|||
Все кони ходят одинаково. И чёрные, и белые. То же касается и всех других фигур. А вот правила передвижения пешек зависит от цвета. Белые пешки двигаются вверх, чёрные - вниз. Поэтому имеет смысл создать отдельные класса для белых и чёрных пешек. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 23 мин. [Показать отчёт] Научился: процедурный метод - проверять пешки при каждом ходе с помощью метода boolean isWhite; ООП метод - не городить проверки пешек на цвет, а создать вообще разные классы для белых и для черных пешек. НЕ ЗАБЫВАЙ - создал абстрактный метод в классе - делай абстрактным и сам класс!! |
|||||
6 | CHESS - Шахматный конструктор |
1 тест |
|||
На этом уроке мы создадим конструктор для каждой фигурной твари. Особенно интересные конструкторы получатся у пешек. Сделайте пошаговое выполнение программы, чтобы проследить за каскадным вызовом конструктором. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 19 мин. [Показать отчёт] Научился: конструктор - аз есмь метод для создания нового объекта(ЭКЗЕМПЛЯРА КЛАССА), одноименный с названием класса(ДЛЯ УДОБСТВА ЕГО НАХОЖДЕНИЯ В КОДЕ) и не имеющий возвращаемого значения (ВОЗВРАЩАЕТСЯ НОВЫЙ ЭКЗЕМПЛЯР, СВЕРХ ЭТОГО НЕ НАТОЛКАЕШЬ) this.x = x; эквивалентно записи "ВЗЯТЬ ЗНАЧЕНИЕ ИКС ИЗ АРГУМЕНТОВ КОНСТРУКТОРА И ЗАПИХАТЬ ЭТО ЗНАЧЕНИЕ В ОДНОИМЕННУЮ ПЕРЕМЕННУЮ В ЭТОМ САМОМ КЛАССЕ" На первой иллюстрации (хвала Эклипсу) я поместил каретку на this.x, автоматически была подсвечена переменная, соответствующая инициализация int x Удобно для поиска и осознания! super (x, y); - первой строкой в конструкторе класса-наследника вызывается конструктор фигуры в суперклассе |
|||||
Итого: 6 видеоуроков |
46 мин. 13 тестов |
35 чел. | |||
Финалисты: Stanislav Čuličkov, Dmitrij Starikovič, Zulchumor Kurbonova, Новопашин Владимир, Vladimir Falejev, Michail Ostryj, Sergej Piskun, Aleksandra Kostrukova, Jevgenij Kariagin, Leonid Shevchenko, Евгений Мехтиев, Antonina Ignatjeva, Auksė Cycarienė, Иван Воронин, Tekashnik, Vladimir Fedotov, Алексей В., Erik Obuchovič, Сергей Соколов, Станислав, Сергей, Максим Лапшинов, Povilas Abramovicius, Kiril Krutiajev, Andrej Petrunev, Aleksej Fiodorov, Andrej Gladkov, Sergej Šugajev, Dmitry Sinitsin, Chip, Andrew, grom518, Anatoli, Yefim, Tom . |