Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Homework 1 #13

Open
igorkravchenko opened this issue Nov 7, 2018 · 7 comments
Open

Homework 1 #13

igorkravchenko opened this issue Nov 7, 2018 · 7 comments
Assignees

Comments

@igorkravchenko
Copy link
Contributor

igorkravchenko commented Nov 7, 2018

Для прочтения:

Enumerations
Structures and Classes
Properties
Methods

Практика:
Так же как в практическом задании прошлой лекции, создаем папку homeworks/[name.surname_githubusername]/homework_1
В этой папке создаем плейграунд ObjectsClassesEnumsStructs.

Задание №1
Из mobile-ios-swift-course-2018/lectures/lecture1/01 - Objects and Classes.playground скопируйте класс NamedShape вместе с родительскими классами в ObjectsClassesEnumsStructs.playground
Создайте подкласс Circle класса NamedShape, который принимает радиус и имя в качестве аргументов в их инициализатор. Реализуйте метод area() и метод simpleDescription() класса Circle.

Задание №2
Из mobile-ios-swift-course-2018/lectures/lecture1/02 - Enumerations and Structures.playground скопируйте перечисления Rank, Suit и структуру Card в ObjectsClassesEnumsStructs.playground

  1. Напишите функцию, сравнивающую два Rank значения, с помощью сравнения их исходных (raw) значений.
  2. Добавьте метод color() для Suit, который возвращает "black" для spades (пики) и clubs (трефы), и возвращает "red" для hearts (червы) и diamonds (бубны).
  3. Добавьте метод для Card, который бы создал полную колоду карт, с одной картой из каждой комбинации ранга (rank) и масти (suit).

Задание №3
В ObjectsClassesEnumsStructs.playground создайте:

  1. Струкуру Command с полем message (тип String) и методом execute который в консоль выведет значение поля message
  2. Перечисление Mode с кейсами idle, work, error
  3. Класс Robot с
    • полями mode (тип Mode), commands (тип массив Command)
    • инициализатором с одним аргументом устанавливающим поле commands, и присваивающий полю mode значение idle
    • методом start, который в случае, если массив commands пуст, устанавливает в mode значение error, в ином же случае устанавливает в mode значение work
    • методом go, который в случае,
      если полю mode присвоено значение idle, выведет в консоль "robot is off",
      если work - "robot is working" и при этом вызовет метод execute у каждого элемента из массива commands,
      если error - "robot is broken"
  4. Несколько (3-5) подклассов класса Robot с инициализатором не принимающим аргументов, но передающим массив нескольких (3-5) стуктур Command в инициализатор класса-родителя.
  5. По одному экземпляру из подклассов класса Robot и вызовите у них методы go, start в таком порядке, чтобы роботы успешно справились с выполнением своих Command-заданий.
  6. Подкласс класса Robot, вызов метода go у которого выведет в консоль "robot is broken".
  7. Экземпляр вышеупомянутого класса и вызовите у него методы для вывода в консоль "robot is broken".
differz added a commit to differz/mobile-ios-swift-course-2018 that referenced this issue Nov 11, 2018
@MSavisko
Copy link
Contributor

#14 vadim.albul_devVadimAlbul

@MSavisko
Copy link
Contributor

#17 igor.medelyan_imedelyan

igorkravchenko added a commit that referenced this issue Nov 12, 2018
@MSavisko
Copy link
Contributor

#15 denys.viitenko_danviitenko

@MSavisko
Copy link
Contributor

#16 sergii.suprun_differz

@MSavisko
Copy link
Contributor

#18 dima.tachenko_dimatachenko

@MSavisko
Copy link
Contributor

#20 anton.nebylytsia_oanton

@MSavisko
Copy link
Contributor

#19 artem.migovich_migovich

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants