Skip to content

NSLyapustin/ITIS_2020_101

 
 

Repository files navigation

Задание на практику

1. Необходимо реализовать все функции приведённого ниже протокола Calculator .

(Копируйте протокол в свой Playground и делайте его реализацию любым удобным вам способом)

protocol Calculator {
    /// Функция деления с остатком, должна вернуть в первой части результат деления, во второй части остаток.
    func divideWithRemainder(_ x: Int, by y: Int) -> (Int, Int)
    /// Функция должна вернуть массив `n` чисел Фибоначчи. (Числа 1, 1, 2, 3, 5, 8 и т.д.)
    func fibonacci(n: Int) -> [Int]
    /// Функция должна сортировать массив таким образом, чтобы в начале массива были нечётные числа, а в конце — чётные. Сортировать сами числа внутри чётных-нечётных необязательно. 
    func sortByEvenOdd(array: [Int]) -> [Int]
    /// Функция должна напечатать triforce знаками "▲" и " " функцией `print`.
    /// - parameter n: Высота triforce.
    func triforce(n: Int)
}

2. Необходимо применить принципы ООП: инкапсуляцию, полиморфизм и наследование.

Если не можете придумать предметную область, можно описать следующие термины: (человек, студент, преподаватель, имя, возраст, средняя успеваемость, марка машины)

Домашнее задание

Написать игру на ООП в жанре королевской битвы. Правила:

  • Всего есть 2^N команд по 4 человека; У каждой команды должно быть какое-то название, например, можно склеить "Team \(number)"
  • У каждого члена команды должны быть имя (можно не вводить вручную) и свои характеристики, например, урон, уровень жизни (можно добавить ещё что-то, на ваше усмотрение);
  • Битва идёт в виде раундов, каждый раунд две команды сталкиваются, в результате сражения одна из команд выживает, но при этом какие-то члены команды могут погибнуть. Правила боя — на вас;
  • Между раундами должен быть сбор ресурсов, например, игроки находят предметы, которые увеличивают их урон или текущий уровень жизни. Всё зависит от рандома, поэтому используйте функцию random(in:).
  • События нужно логировать с помощью print. Как минимум, нужно логировать следующее: а) команда победила другую команду; б) игрок команды выбыл; в) игрок команды нашёл какой-то ресурс; г) команда одержала победу;
  • Проявление фантазии приветствуется.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%