Тема:
Переменные
Строки
Циклы
Массивы
Литералы объектов
Циклы «for»
Цели:
Огры должны умереть!
Бонус: Все ваши солдаты должны выжить.
Руководство:
Вступление:
Используйте функции findFriends() и for-loop.
Прикажите Вашим войскам продвинуть или атаковать огров!
Обзор:
Используйте метод findFriends() для того, чтобы получить массив из Ваших «друзей». Затем, используйте цикл for для того чтобы отдавать им команды.
Отдайте им приказ двигаться вправо (путем прибавления чисел к позиции x, тем самым увеличивая её значение) или же сражаться, если они увидят огров.
Подсказка: Уменьшение чисел, на которые будет увеличиваться позиция x Ваших солдат, замедлит их скорость перемещения. Это может помочь быстрым солдатам оставаться в строю с их медленным товарищами, что в итоге может решить схватки.
Благородная жертва, прохождение:
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 |
# Прикажите вашим войскам двигаться на восток и атаковать любых огров которых они увидят. # Используйте for циклы и findFriends. # Вы можете использовать метод findNearestEnemy() на Ваших солдатах, для того, чтобы находить ближайшего к ним, а не к себе, противника. friends = hero.findFriends() for i in range(len(friends)): friend = friends[i] if friend.type == "soldier": hero.command(friend, "move", {"x":friend.pos.x+20,"y":friend.pos.y}) hero.say("align") hero.say("go") num =1 while True: for i in range(len(friends)): friend = friends[i] enemy = friend.findNearestEnemy() if enemy: hero.command(friend, "attack", enemy) else: hero.command(friend, "move", {"x":friend.pos.x+5,"y":friend.pos.y}) hero.say(num) if num == 1: num=2 else: num=1 |
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 28 29 30 31 |
// Прикажите вашим войскам двигаться на восток и атаковать любых огров которых они увидят. // Используйте for циклы и findFriends. // Вы можете использовать метод findNearestEnemy() на Ваших солдатах, для того, чтобы находить ближайшего к ним, а не к себе, противника. var friends = hero.findFriends(); var friend = friends[0]; for (var i=0; i < friends.length; i++){ friend = friends[i]; if (friend.type == "soldier"){ hero.command(friend, "move", {x:friend.pos.x+20,y:friend.pos.y}); } } hero.say("align"); hero.say("go!"); var num = 1; var enemy; while (true) { for (i=0; i < friends.length; i++){ friend = friends[i]; enemy = friend.findNearestEnemy(); if (enemy){ hero.command(friend, "attack", enemy); } else { hero.command(friend, "move", {x:friend.pos.x+5,y:friend.pos.y}); } } hero.say(num); if (num == 1) num = 0; else num = 1; } |
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 |
# Прикажите вашим войскам двигаться на восток и атаковать любых огров которых они увидят. # Используйте for циклы и findFriends. # Вы можете использовать метод findNearestEnemy() на Ваших солдатах, для того, чтобы находить ближайшего к ним, а не к себе, противника. friends = @findFriends() for friend in friends if friend.type == "soldier" @command friend, "move", {x:friend.pos.x+20,y:friend.pos.y} @say "align" @say "go!" num = 1 while true for friend in friends enemy = friend.findNearestEnemy() if enemy @command friend, "attack", enemy else @command friend, "move", {x:friend.pos.x+5,y:friend.pos.y} @say num if num == 1 num =0 else num = 1 |
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 27 28 29 30 31 32 |
-- Прикажите вашим войскам двигаться на восток и атаковать любых огров которых они увидят. -- Используйте for циклы и findFriends. -- Вы можете использовать метод findNearestEnemy() на Ваших солдатах, для того, чтобы находить ближайшего к ним, а не к себе, противника. local friends = self:findFriends() for i=1, #friends do local friend = friends[i] if friend.type == "soldier" then self:command(friend, "move", {x = friend.pos.x+20,y = friend.pos.y}) end end self:say("align") self:say("go!") local num = 1 local enemy while true do for i=1, #friends do friend = friends[i] enemy = friend:findNearestEnemy() if enemy then self:command(friend, "attack", enemy) else self:command(friend, "move", {x = friend.pos.x+5,y = friend.pos.y}) end end self:say(num) if num == 1 then num = 2 else num = 1 end end |
`friends = hero.findFriends()
for i in range(len(friends)):
friend = friends[i]
if friend.type == «soldier»:
hero.command(friend, «move», {«x»:friend.pos.x+20,»y»:friend.pos.y})
hero.say(«align»)
hero.say(«go»)
num =1
while True:
for i in range(len(friends)):
friend = friends[i]
enemy = friend.findNearestEnemy()
if friend.health<friend.maxHealth / 3:
hero.command(friend, "move", {"x":12,"y":45})
elif enemy:
hero.command(friend, "attack", enemy)
else:
hero.command(friend, "move", {"x":friend.pos.x+5,"y":friend.pos.y})
hero.say(num)
if num == 1:
num=2
else:
num=1