В уровне герой должен идти в точку, координата х которой больше или меньше координаты х лошади на 7 (x1 и х2):
if horse:
x1 = horse.pos.x - 7
x2 = horse.pos.x + 7
if x1 >= 1:
# Идите к y - координате лошади, но вместо x используйте x1.
hero.moveXY(x1, horse.pos.y)
elif x2 <= 79:
# Идите к y - координате лошади, но вместо x используйте x2.
hero.moveXY(x2, horse.pos.y)
Не могли бы вы объяснить, почему именно так? Почему бы не сделать так, чтобы герой двигался на позицию лошади?
1 Like
Сложно сказать если честно. Уровень старый и без документации. Могу предположить что автор хотел показать как отрабатывать крайние случай и выход за границы координат, но получить такой случай очень сложно на данном уровне. Спасибо за вопрос. Обсудим с командой “смысл” данного уровня.
1 Like
А как вообще пройти этот уровень? У меня вот такой код и он не работает
while(true) {
// Как тебе найти ближайший союзный юнит?
// horse = ?
var horse = hero.findNearestByType("horse");
if (horse) {
var x1 = horse.pos.x - 7;
var x2 = horse.pos.x + 7;
if (x1 >= 1) {
// Иди к координате `y` лошади, используя `x1` в качестве координаты `x`.
hero.moveXY(x1, horse.pos.y);
} else if (x2 <= 79) {
// Иди к координате `y` лошади, используя `x2` в качестве координаты `x`.
hero.moveXY(x2, horse.pos.y);
}
var distance = hero.distanceTo(horse);
if (distance <= 10) {
hero.say("Whoa");
// Идите к красной отметке X, чтобы вернуть лошадь в стойло.
hero.moveXY(27, 54);
// Снова возвращайся на пастбище, ищи следующую лошадь.
hero.moveXY(41, 18);
}
}
}
Также не получаеться пройти уровень var horse = hero.findFriends();
if (horse) {
var x1 = horse.pos.x - 7;
var x2 = horse.pos.x + 7;
if (x1 >= 1) {
// Иди к координате y
лошади, используя x1
в качестве координаты x
.
hero.moveXY(x1, horse.pos.y);
} else if (x2 <= 79) {
// Иди к координате y
лошади, используя x2
в качестве координаты x
.
hero.moveXY(x2, horse.pos.y);
}
var distance = hero.distanceTo(horse);
if (distance <= 10) {
hero.say(“Whoa”);
// Идите к красной отметке X, чтобы вернуть лошадь в стойло.
hero.moveXY(27, 54);
// Снова возвращайся на пастбище, ищи следующую лошадь.
hero.moveXY(41, 17);
}
}
}