Swift Playgrounds на русском, Parameters 3 урок | Crank Up and Down

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

Мой телеграм канал, где перевод уроков по swift playgrounds выходит чаще и раньше чем видео!

1-3 Crank Up and Down 1-3
Параметры

Испытание: Используйте эксперта и метод turnLock чтобы собрать все кристаллы.

В этой головоломке, вы можете пользоваться turnLock и move чтобы помочь вашему персонажу собрать все кристаллы. Есть множество способов решения этой головоломки, поэтому возьмите немного времени для того чтобы продумать несколько различных решений прежде чем приступать к прохождению. Удачи!

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

func solve() {
expert.turnLock(up: true, numberOfTimes: 4)
character.moveForward()
expert.turnLock(up: false, numberOfTimes: 3)
character.turnLeft()
character.moveForward()
character.collectGem()
character.turnRight()
character.turnRight()
character.moveForward()
expert.turnLock(up: true, numberOfTimes: 3)
character.turnLeft()
expert.turnRight()
}
character.move(distance: 2)
character.collectGem()
character.turnRight()
solve()
character.moveForward()
character.collectGem()
character.turnRight()
solve()
character.moveForward()
solve()
character.moveForward()
character.collectGem()
character.turnRight()
solve()
Я решил задачу таким способом потому что он мне показался самым простым

fullzoom
Автор

func turnLock(up: Bool, numberOfTimes: Int){
for i in 1...numberOfTimes{
if up == true {
expert.turnLockUp()
} else if up == false {
expert.turnLockDown()
}
}
}
func gemmy(){
turnLock(up: true, numberOfTimes:4)
character.collectGem()
character.turnRight()
character.moveForward()
character.turnLeft()
turnLock(up: false, numberOfTimes:3)
character.moveForward()
character.collectGem()
character.turnLeft()
character.turnLeft()
character.moveForward()
character.turnLeft()
turnLock(up:true, numberOfTimes:3)
expert.turnRight()
character.moveForward()
}

character.moveForward()
character.moveForward()
gemmy()
gemmy()
character.turnLeft()
gemmy()
gemmy()

nickreckoner
Автор

func gem() {
if character.isOnGem {
character.collectGem()
}
}
func solv() {
gem()
expert.turnLock(up: true, numberOfTimes: 4)
if character.isBlocked || character.isBlockedLeft {
character.turnRight()
}
character.moveForward()
expert.turnLock(up: false, numberOfTimes: 3)
character.turnLeft()
character.moveForward()
character.turnLeft()
character.turnLeft()
gem()
character.moveForward()
expert.turnLock(up: true, numberOfTimes: 3)
character.turnLeft()
character.moveForward()
expert.turnRight()
}
character.move(distance: 2)
gem()
for i in 1...4 {
solv()
}

hhkpinc.
Автор

Бахнул так

func twoSteps() {
character.move(distance: 2)
character.collectGem()

}

func turnLeft() {
character.turnLeft()
character.turnLeft()
}


twoSteps()
character.turnRight()


for i in 1 ... 4 {
expert.turnLock(up: true, numberOfTimes: 4)
expert.turnLeft()
}

twoSteps()
character.turnRight()

character.move(distance: 4)
character.collectGem()
character.turnRight()
character.move(distance: 6)
character.turnRight()
character.moveForward()
character.turnRight()

for i in 1 ... 4 {
expert.turnLock(up: false, numberOfTimes: 3)
expert.turnLeft()
}

character.move(distance: 7)
character.collectGem()
turnLeft()
character.move(distance: 2)
character.turnLeft()
twoSteps()
turnLeft()
character.move(distance: 6)
character.collectGem()
turnLeft()
character.move(distance: 2)
character.turnLeft()
twoSteps()

АртёмБоровский-йт
Автор

var gemCouter = 0

func portalControl() {
if gemCouter == 1 && character.isBlocked{
expert.turnLock(up: true, numberOfTimes: 4)
}

if gemCouter == 2 {
character.moveForward()
expert.turnLock(up: false, numberOfTimes: 3)
for i in 1 ... 3 {
expert.turnRight()
expert.turnLock(up: true, numberOfTimes: 1)
}
character.turnRight()
}
if gemCouter == 6 {
expert.turnLock(up: true, numberOfTimes: 3)
}
}
func collectGem() {
character.collectGem()
gemCouter += 1
character.turnLeft()
character.turnLeft()
}
func travelCollect() {
if !character.isBlocked {
character.moveForward()
}
if character.isBlocked && character.isBlockedLeft && character.isBlockedRight && character.isOnGem && gemCouter < 2{
character.collectGem()
gemCouter += 1
character.turnRight()
}
if character.isOnGem && character.isBlockedLeft && character.isBlockedRight {
collectGem()
}
if character.isOnGem && !character.isBlockedLeft && !character.isBlockedRight {
collectGem()
character.moveForward()
}
if character.isOnGem && character.isBlockedRight {
collectGem()
character.moveForward()
character.turnRight()
}

if !character.isBlockedLeft && gemCouter != 6{
character.turnLeft()
}
}

while gemCouter != 7 {
travelCollect()
portalControl()
}

alex_minsk