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