Swift Playgrounds на русском, For Loops 7 урок | Four Stash Sweep

preview_player
Показать описание
Ссылка на Telegram
(Перевод новых уроков будет выходить раньше, чем видео здесь! Подписывайтесь!)

Всем привет! Это седьмой урок по циклам типа: FOR, по программированию на языке Swift для начинающих в программе Swift Playgrounds. В этот раз у нас самое сложное испытание за все время, нам нужно его пройти перед изучением условного кода. Мой вариант прохождения не является идеальным или худшим, это просто один из вариантов!

#swiftplaygroundsнарусском #урокипрограммирования #swift #циклы #learntocode1
Рекомендации по теме
Комментарии
Автор

Неплохая головоломка. Приятная гимнастика для мозга. Спасибо!

andreymuller
Автор

Ещё до просмотра включил задание и написал одну функцию и за 4 раза все собрал. Смотрю теперь как ты реализовал. Да бро, красивее 🤓

Sweatyawe
Автор

я по-другому написал данное задание:

func collectGems() {
moveForward()
collectGem()
turnLeft()
moveForward()
collectGem()
turnLeft()
turnLeft()
moveForward()
turnLeft()
moveForward()
collectGem()
turnLeft()
turnLeft()
moveForward()
turnLeft()
moveForward()
collectGem()
moveForward()

}

for i in 1 ... 4 {
collectGems()

}

German
Автор

for i in 1 ... 4 {
for i in 1 ... 2 {
moveForward()
collectGem()
}
func arround() {
for i in 1 ... 2 {
turnLeft()
}
}
arround()
moveForward()
turnRight()
moveForward()
collectGem()
arround()
for i in 1 ... 2 {
moveForward()
}
collectGem()
moveForward()
}

vipraptor
Автор

func Razvorot() {
turnLeft()
turnLeft()
}
func Sbor() {
moveForward()
collectGem()
}


func KristalSbor() {
Sbor()
Sbor()
Razvorot()
moveForward()
turnRight()
Sbor()
Razvorot()
moveForward()
Sbor()
moveForward()
}
for i in 1 ... 4 {
KristalSbor()

}

VaLdEmaR
Автор

У меня с первого раза не получилось пройти эту задачу и было очень много трудностей. Потом у меня получилось и код был таким:
func turnAround(){
turnLeft()
turnLeft()
}
func takeFirstGem(){
moveForward()
collectGem()

}
func takeSecondGem(){
turnLeft()
takeFirstGem()
turnAround()
}
func taketwoGem(){
moveForward()
turnLeft()
moveForward()
collectGem()
}

for i in 1 ... 3{
takeFirstGem()
takeSecondGem()
taketwoGem()
turnAround()
taketwoGem()
moveForward()
}
for i in 1 ... 1{
takeFirstGem()
takeSecondGem()
taketwoGem()
turnAround()
taketwoGem()
}
Затем пересмотрев ваше решение мне в голову пришла идея переписать код более проще и понятнее:
func solveFourGems(){
moveForward()
collectGem()
for i in 1 ... 2{
turnLeft()
moveForward()
collectGem()
turnLeft()
turnLeft()
moveForward()
}
turnLeft()
moveForward()
collectGem()
}
for i in 1 ... 3{
solveFourGems()
moveForward()
}
solveFourGems()

fullzoom