Тема:
Условные операторы «if/else»
Условные операторы
Вложенные условные операторы
Строки
Переменные
Цели:
Взломай сундук.
Выживи
Руководство:
Совет 1:
Взломай сундук, пока тебя атакуют группы манчкинов и некоторые, особенно злые манчкины.
Совет 2:
На этом уровне манчкины периодически атакуют без поддержки своих товарищей!
Используйте ‘cleave’, чтобы победить любые группы манчкинов, которые приближаются. Но используйте его только в тому случае, когда удар готов!
1 2 |
If hero.isReady ("cleave"): # Это произойдет, только когда «cleave» готов к использованию |
JavaScript:
1 2 3 |
if(hero.isReady("cleave")) { // Это произойдет, только когда «cleave» готов к использованию } |
CoffeScript:
1 |
Clojure:
1 |
LUA:
1 2 3 |
if hero:isReady("cleave") then --Это произойдет, только когда «cleave» готов к использованию end |
Проверьте, чтобы манчкины были в пределах удара с помощью метода distanceTo. Помните, что distanceTo находит числовое значение между героем и аргументом.
Обратите внимание: знак «меньше чем» или «<» полезен только при сравнении двух чисел! hero.findNearestEnemy() возвращает врага, а не числа!
hero.isReady() возвращает значения true или false, а не число! Обязательно используйте ‘<‘ только при сравнении чисел, таких как 5 или hero.distanceTo(enemy).
1 2 3 4 5 |
distance = hero.distanceTo(enemy) if hero.isReady("cleave"): # elif специальный оператор! Он сообщает герою, не выполнять следующую часть, если первое условие было Итинным, и второй блок программы выполняется только если первое условие было ложным. elif distance < 5: # Это произойдёт, только когда враг окажеться ближе 5 метров, а cleave не готов. |
JavaScript:
1 2 3 4 5 6 |
var enemy = hero.findNearestEnemy() var distance = hero.distanceTo(enemy) if(hero.isReady("cleave") { // else if специальный термин! Он сообщает герою, не выполнять следующую часть, если первое условие было Итинным, и второй блок программы выполняется только если первое условие было ложным. } else if(distance < 5) { // Это произойдёт, только когда враг окажеться ближе 5 метров, а cleave не готов. |
CoffeScript:
1 |
Clojure:
1 |
LUA:
1 2 3 4 5 6 |
local distance = hero:distanceTo(enemy) if hero:isReady("cleave") then -- elif специальный оператор! Он сообщает герою, не выполнять следующую часть, если первое условие было Итинным, и второй блок программы выполняется только если первое условие было ложным. elseif distance < 5 then -- Это произойдёт, только когда враг окажеться ближе 5 метров, а cleave не готов. end |
Наконец, если раскол не готов, и ближайший манчкин находится на расстоянии более 5 метров, вы можете атаковать сундук!
1 2 3 4 |
#Помните, что код в блоке else выполняется, только тогда, когда другие условия в if были ложны. else { # Это произойдёт, когда враг будет ближе чем 5 метров, а cleave ещё не готов. } |
JavaScript:
1 2 3 4 |
// Помните, что код в блоке else выполняется, только тогда, когда другие условия в if были ложны. else { // Это произойдёт, когда враг будет ближе чем 5 метров, а cleave ещё не готов. } |
CoffeScript:
1 |
Clojure:
1 |
LUA:
1 2 3 4 |
-- Помните, что код в блоке else выполняется, только тогда, когда другие условия в if были ложны. else -- Это произойдёт, когда враг будет ближе чем 5 метров, а cleave ещё не готов. end |
Но осторожней! В этом лесу живут мирные жители.
Манчкины-маньяки, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Еще один сундук на поле ждет тебя! # Атакуй сундук, чтобы взломать его. # Некоторые манчкины не будут спокойно ждать, пока ты атакуешь его! # Защищай себя, если манчкин подберется слишком близко. while True: enemy = hero.findNearestEnemy() distance = hero.distanceTo(enemy) if hero.isReady("cleave"): # В первую очередь атакуем с помощью cleave если данная атака готова. hero.cleave(enemy) pass elif distance < 5: # Атакуй ближайшего манчкина, который подберется к тебе: hero.attack(enemy) pass else: # В противном случае, пытайтесь взломать сундук. hero.attack("Chest") pass |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Еще один сундук на поле ждет тебя! // Атакуй сундук, чтобы взломать его. // Некоторые манчкины не будут спокойно ждать, пока ты атакуешь его! // Защищай себя, если манчкин подберется слишком близко. while(true) { var enemy = hero.findNearestEnemy(); var distance = hero.distanceTo(enemy); if(hero.isReady("cleave")) { // В первую очередь атакуем с помощью cleave если данная атака готова. hero.cleave(enemy); } else if(distance < 5) { // Атакуй ближайшего манчкина, который подберется к тебе: hero.attack(enemy); } else { // В противном случае, пытайтесь взломать сундук. hero.attack("Chest"); } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Еще один сундук на поле ждет тебя! # Атакуй сундук, чтобы взломать его. # Некоторые манчкины не будут спокойно ждать, пока ты атакуешь его! # Защищай себя, если манчкин подберется слишком близко. while true enemy = @findNearestEnemy() distance = @distanceTo enemy if hero.isReady("cleave") # В первую очередь атакуем с помощью cleave если данная атака готова. @cleave enemy # Remove this say once you've filled the if-statement: # @say "Cleave is ready!" else if distance < 5 # Атакуй ближайшего манчкина, который подберется к тебе: @attack enemy # Remove this say once you've filled the if-statement: # @say "A munchkin is close!" else # В противном случае, пытайтесь взломать сундук. @attack "Chest" # Remove this say once you've filled the if-statement: # @say "I'm safe to attack the chest!" |
Clojure:
1 |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
-- Еще один сундук на поле ждет тебя! -- Атакуй сундук, чтобы взломать его. -- Некоторые манчкины не будут спокойно ждать, пока ты атакуешь его! -- Защищай себя, если манчкин подберется слишком близко. while true do local enemy = hero:findNearestEnemy() local distance = hero:distanceTo(enemy) if hero:isReady("cleave") then -- В первую очередь атакуем с помощью cleave если данная атака готова. hero:cleave(enemy) elseif distance < 5 then -- Атакуй ближайшего манчкина, который подберется к тебе: hero:attack(enemy) else -- В противном случае, пытайтесь взломать сундук. hero:attack("Chest") end end |
Комментарии: