[SOLVED/PEWEHA] Помогите пройти Гора Клаудрип уровень Танцевальный Турнир

Я не понимаю как героя синхронизировать с партнёром.
вот эта часть я считаю что правильная:

// Двигайся синхронно с партнёром, чтобы впечатлить Пендера Спеллбейна.
var partner = hero.findNearest(hero.findFriends());
var distanse = hero.distanceTo(partner);

а тут уже проблема.
Пробовал разные варианты но безуспешно.
var par = partner.pos - distanse;
while(true) {
hero.move(par.pos);
}

расскажите пожалуйста в чем ваша проблема

please tell us what is your problem

проблема что я не совсем понимаю как написать чтобы герой двигался синхронно с партнёром.
если я делаю так:
var partner = hero.findNearest(hero.findFriends());
var distanse = hero.distanceTo(partner);
var par = partner.pos - distanse;
while(true) {
hero.move(par.pos);
}
выдает ошибку: ArgumentError: Аргумент pos функции move должен иметь тип object, но имеет null. Двигаться к {x: number, y: number} позиции.

В Совет написано:

  1. Найдите своего партнёра:
    var partner = hero.findNearest(hero.findFriends());
  2. Найдите расстояние между героем и его партнером:
    var distanse = hero.distanceTo(partner);
  3. Используйте это смещение, чтобы перемещаться идеально согласованно с прочими танцорами.
    Вот с 3 Пунктом у меня проблема я не совсем понимаю как его использовать с функцией move.

Лучший результат к которому я пришел:
var partner = hero.findNearest(hero.findFriends());
var distanse = hero.distanceTo(partner);
while(partner.pos + distanse) {
hero.move(partner.pos);
}
Только в этом случае герой пытается затоптать partner.
Если я меню плюс на минус в while(partner.pos - distanse),
то он просто стоит на месте. Время кончается и все проигрыш.

Всем спасибо я нашел ответ.

Я вероятно сильно перемудрил, но у меня идеально работает вот так:

while (true) {
    var nearest = hero.findNearest(hero.findFriends());
    var distance = hero.distanceTo(nearest);
    if (hero.pos.y > nearest.pos.y) {
        while (true) {
            while (nearest.pos.y == hero.pos.y - distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y + distance
                });
            }
            while (nearest.pos.y == hero.pos.y + distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y - distance
                });
            }
            while (nearest.pos.y > hero.pos.y + distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y - distance
                });
            }
            while (nearest.pos.y < hero.pos.y + distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y + distance
                });
            }
        }
    } else {
        while (true) {
            while (nearest.pos.y == hero.pos.y - distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y + distance
                });
            }
            while (nearest.pos.y == hero.pos.y + distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y - distance
                });
            }
            while (nearest.pos.y > hero.pos.y + distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y - distance
                });
            }
            while (nearest.pos.y < hero.pos.y + distance) {
                hero.move({
                    'x': nearest.pos.x,
                    'y': nearest.pos.y - distance
                });
            }
        }
    }
}