Swift Playgrounds на русском, Variables 7 урок | Round Up the Switches

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

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

1-7 Round Up the Switches 1-7
Переменные

Испытание: Нажмите на столько кнопок (свитчеров), сколько собрано кристаллов.

В этом испытании, нажмите на второй площадке на такое количество свитчеров, сколько было собрано кристаллов на первой площадке.

Ускоренное присваивание

( compound assignment operator - кампаунд ассаинмент опирэйтор - составной оператор присваивания - оператор который сочетает в себе присваивание (выставление значения переменной) с помощью другой операции, такой как сложение или вычитание. Например, если текущее значение А равно 1, то используя комбинацию А += 3 , добавляет цифру 3 к 1 одному и присваивает результат А , таким образом теперь значение А равняется 4 четырём )

Используйте составной оператор присваивания для добавления значения переменной и присваивания нового значения одновременно.

Две линии кода расположенные ниже, демонстрируют абсолютно одно и то же действие, но если делать это способом - += то это будет быстрее!

Пример
gemCounter = gemCounter + 1
gemCounter += 1

Используйте ваши знания о переменных, присваивании и операторах сравнения для создания решения к этой головоломке. Помните, что ничего страшного, если вы не найдёте решение с первой попытки. Опробование различных подходов позволяет вам учится на ваших ошибках, дав вам более глубокое понимание кода, который вы пишите.

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

Сами не догадались пришлось подсмотреть у вас! Спасибо!

Юлиана-лш
Автор

Вроде быстро получилось, но всегда полезно сравнить код.

var gemCounter = 0
var switchCounter = 0



while switchCounter != gemCounter || !isOnClosedSwitch {
if isOnGem {
collectGem()
gemCounter += 1
} else if isOnClosedSwitch {
toggleSwitch()
switchCounter += 1
} else if !isBlocked {
moveForward()
} else if isBlocked {
turnRight()
}
}

MrHotie
Автор

Да, с третьей попытки надеюсь ляжет в голову )))

titovis
Автор

Собирать gem можно было через for. А свитчеры нажимать через while. Само хождение можно было сделать проще - если заблокирован спереди, поворачивай направо.

GenryRoger
Автор

проще
var switchCounter = 0
let gemCounter = numberOfGems

while switchCounter < gemCounter {
if isOnGem {
collectGem()
}
if isOnClosedSwitch {
toggleSwitch()
switchCounter += 1
}
if isBlocked{
turnRight()
}else{
moveForward()
}
}

nickreckoner
Автор

Решил может за 10 минут. Потом зашел посмотреть, как тут решили и оказалось почти похоже.
var gemCounter = 0
var switchCounter = 0

func naviPuzzle() {
if !isBlocked {
moveForward()
} else if isBlocked {
turnRight()
moveForward()
}

}


while switchCounter == 0 || switchCounter != gemCounter {
naviPuzzle()
if isOnGem {
collectGem()
gemCounter += 1
} else if isOnClosedSwitch {
toggleSwitch()
switchCounter += 1
}
}

max_game_ua
Автор

решил минут за 15. просто двумя циклами While:
while !isOnClosedSwitch {
moveForward()
if isOnGem{
collectGem()
gemCounter += 1
}
if isBlocked {
turnRight()
}
}

while switchCounter != gemCounter {
if !isBlocked {
toggleSwitch()
switchCounter += 1
moveForward()
}else {
turnRight()

}
}
все) и да ifIsBlockedLeft здесь не нужно

KrisBond-ebge