Тема:
Аргументы
Базовый синтаксис
Условные операторы
Переменные
Цели:
Победи огров.
Проверь каждый уголок.
Руководство:
Совет 1:
Проверь лесные закоулки на наличие врагов, но аккуратнее! Не везде есть враг, которого надо атаковать.
Используй выражение if, чтобы проверить существование врага.
Python:
1 2 3 |
enemy = hero.findNearestEnemy() if enemy: # Attack! |
JavaScript:
1 2 3 |
var enemy = hero.findNearestEnemy(); if(enemy) { // Attack! |
CoffeScript:
1 |
Clojure:
1 |
LUA:
1 2 3 4 |
local enemy = hero:findNearestEnemy() if enemy then -- Attack! end |
Совет 2:
Выражения if (если)
Выражения if используются, чтобы управлять ходом программы. Они используются для проверки определённого условия на истинность (true).
Выражения if похожи на while, но блок внутри выполняется только один раз.
Часто if используется для проверки существования юнита.
Примеры:
Python:
1 2 3 4 5 |
enemy = hero.findNearestEnemy() if enemy: # Враг существует. # Стоит его атаковать! # А это выполнится в любом случае! |
JavaScript:
1 2 3 4 5 6 |
var enemy = hero.findNearestEnemy(); if(enemy) { // Враг существует. // Стоит его атаковать! } // А это выполнится в любом случае! |
CoffeScript:
1 |
Clojure:
1 |
LUA:
1 2 3 4 5 6 |
local enemy = hero:findNearestEnemy() if enemy then -- Враг существует. -- Стоит его атаковать! end -- А это выполнится в любом случае! |
Лесные закоулки, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Пройди через лес, но будь начеку! # Эти лесные закоулки могут быть полны огров! hero.moveXY(19, 33) enemy = hero.findNearestEnemy() # Выражение `if` проверит, является ли переменная огром. if enemy: hero.attack(enemy) hero.attack(enemy) hero.moveXY(49, 51) enemy = hero.findNearestEnemy() if enemy: # Атакуй противника здесь: hero.attack(enemy) hero.attack(enemy) # `pass` ничего не делает, просто закрывает выражение `if` pass hero.moveXY(58, 14) enemy = hero.findNearestEnemy() # Используй выражение `if`, чтобы проверить существование врага if enemy: # Если враг здесь, атакуй его: hero.attack(enemy) hero.attack(enemy) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// Пройди через лес, но будь начеку! // Эти лесные закоулки могут быть полны огров! hero.moveXY(19, 33); var enemy = hero.findNearestEnemy(); // Выражение `if` проверит, является ли переменная огром. if(enemy) { hero.attack(enemy); hero.attack(enemy); } hero.moveXY(49, 51); var enemy = hero.findNearestEnemy(); if(enemy) { // Атакуй противника здесь: hero.attack(enemy); hero.attack(enemy); } hero.moveXY(58, 14); var enemy = hero.findNearestEnemy(); // Используй выражение `if`, чтобы проверить существование врага if(enemy) { // Если враг здесь, атакуй его: hero.attack(enemy); hero.attack(enemy); } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Пройди через лес, но будь начеку! # Эти лесные закоулки могут быть полны огров! @moveXY 19, 33 enemy = @findNearestEnemy() # Выражение `if` проверит, является ли переменная огром. if enemy @attack enemy @attack enemy @moveXY 49, 51 enemy = @findNearestEnemy() if enemy # Атакуй противника здесь: @attack enemy @attack enemy # Remove this say once you've added code! #hero.say "I should do something else." @moveXY 58, 14 enemy = @findNearestEnemy() # Используй выражение `if`, чтобы проверить существование врага if enemy # Если враг здесь, атакуй его: @attack enemy @attack enemy |
Clojure:
1 |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
-- Пройди через лес, но будь начеку! -- Эти лесные закоулки могут быть полны огров! hero:moveXY(19, 33) local enemy = hero:findNearestEnemy() -- Выражение `if` проверит, является ли переменная огром. if enemy then hero:attack(enemy) hero:attack(enemy) end hero:moveXY(49, 51) local enemy2 = hero:findNearestEnemy() if enemy2 then -- Атакуй противника здесь: hero:attack(enemy2) hero:attack(enemy2) end hero:moveXY(58, 14) local enemy3 = hero:findNearestEnemy() -- Используй выражение `if`, чтобы проверить существование врага if enemy3 then -- Если враг здесь, атакуй его: hero:attack(enemy3) hero:attack(enemy3) end |
Комментарии: