Swift Playgrounds на русском, Initialization 1 урок | Initializing Your Expert

preview_player
Показать описание
Друзья, я рад приветствовать всех на второй части по урокам в Swift Playgrounds. Мы с вами приступаем к первому уроку в части по Инициализации. Успехов в прохождении!!!

Мой телеграм канал, где перевод уроков по swift playgrounds выходит чаще и раньше чем видео! Если отключат Ютьюб, вы знаете где найти уроки по Свифту)

1-1 Initializing Your Expert 1-1
Инициализация

Цель: Инициализируйте экземпляр типа Expert и решите эту головоломку с использованием метода turnLockUp().

В этой головоломке, есть новый элемент с которым нужно поработать: замОк. Для решения этой головоломки, вам нужно повернуть замок, который поднимет платформу с кристаллами, до которой сейчас невозможно дойти.

Персонаж, с которым вы работали до этого момента, имел определённое количество навыков, таких как, шаги вперёд, сбор кристаллов, и переключение свитчеров. Но один из навыков у вашего персонажа отсутствовал, это вскрытие замков. Вам будет нужен новый персонаж - эксперт - чтобы это сделать. Поскольку ваш эксперт не может появится сам по себе, вам нужно объявить его, используя константу, и затем инициализировать его присваивая константе необходимый тип Эксперта.

Инициализация эксперта

let expert = Expert()

1. Инициализируйте вашего эксперта.

2. Перемещайте вашего эксперта по головоломке, и давайте ему команды путём точечной нотации.

3. Используйте метод turnLockUp() для замка, чтобы открыть путь к платформам.

#swiftplaygroundsнарусском #swiftplayground #learntocode2 #swift
Рекомендации по теме
Комментарии
Автор

Спасибо большое за труд, главное не прекращай. Идею подсмотрел у тебя но решил немного модернизировать код. Вот что получилось:

func Move3() {
for i in 1 ... 3 {
expert.moveForward()
}
}
func turnArround() {
for i in 1 ... 2 {
expert.turnLeft()
}
}
func navigate() {
Move3()
if expert.isBlocked && !expert.isOnGem {
expert.turnLockUp()
} else {
expert.collectGem()
}
turnArround()
Move3()
expert.turnRight()

}
for i in 1 ... 4 {
navigate()

}

МихаилемнВеденеев
Автор

Попробуйте пройти самостоятельно, точно не про меня

titovis
Автор

По классике пришел закрепить информацию у вас и вижу, что код похож чутка. Объяснения ваши оч помогают, так что смотреть в радость.

func expertMoveFwd() {
for i in 1 ... 3 {
expert.moveForward()
}
}

func expertTurnBack() {
for i in 1 ... 2 {
expert.turnLeft()
}
}

func navigate() {
expert.turnLeft()
expertMoveFwd()
expert.collectGem()
expertTurnBack()
expertMoveFwd()

}


expertMoveFwd()
expert.turnLockUp()
expertTurnBack()
expertMoveFwd()
for i in 1 ... 3 {
navigate()
}

leonidkresss
Автор

Обескуражило сначала отсутсвие оператора (!). Хотелось сначала решить по старинке через (while)
А так код похож на твой, но немного упростил жизнь в передвижении при помощи (for)

func expertWay() {
for i in 1 ... 3 {
expert.moveForward()
}
}
func expertBackWay() {
for i in 1 ... 3 {
expert.moveForward()
}
expert.turnRight()
}
func turnAround() {
expert.turnLeft()
expert.turnLeft()
}
expertWay()
expert.turnLockUp()
turnAround()
expertBackWay()
for i in 1 ... 3 {
expertWay()
expert.collectGem()
turnAround()
expertBackWay()
}


Спасибо!

MrHotie