 I have been playing this level for quite some time and couldn’t figure it out. Could anyone help me with solving it?

``````// Move to the red X mark while avoiding the yaks.
// use Vector.normalize(vector1) to create a vector in the same direction as vector1, but with a distance of 1
// use Vector.multiply(vector1, X) to create a vector in the same direction as vector1, but with its distance multiplied by X

// The point you want to get to.
var goalPoint = new Vector(78, 34);

while(true) {
// This creates a vector that will move you 10 meters toward the goalPoint
// First, create a vector from your hero to the goal point.
var goal = Vector.subtract(goalPoint, hero.pos);
// Then, normalize it into a 1m distance vector
goal = Vector.normalize(goal);
// Finally, multiply the 1m vector by 10, to get a 10m long vector.
goal = Vector.multiply(goal, 10);

// To avoid the yaks, if you get within 10 meters of a yak, you should vector away from it.
var yak = hero.findNearest(hero.findEnemies());
var distance = hero.distanceTo(yak);
if(distance < 10) {
// First, make a Vector from the yak to you
yak = Vector.subtract(hero.pos, yak);
// Now use Vector.normalize and Vector.multiply to make it 10m long
yak = Vector.normalize(yak);
// Once you have the 10m vector away from the yak, use Vector.add to add it to your goal vector!
yak = Vector.multiply(yak, 10);
}
hero.move(moveToPos);
}

``````

Hey! Seems like your problem is that the variable yak is first declared as the entity object you found and then try to pass it to the following Vector.subtract function.

``````var yak = hero.findNearest(hero.findEnemies()); // 'It is not the position you get here!'
var distance = hero.distanceTo(yak);
if(distance < 10) {
// First, make a Vector from the yak to you
yak = Vector.subtract(hero.pos, yak); // 'It is not the position you use here!'
``````

Besides of that, everything seems fine i believe 1 Like

@Shurutsue is right, you need to use yak.pos.
Another thing, look carefully at these lines:

``````// First, make a Vector from the yak to you
yak = Vector.subtract(hero.pos, yak);
``````

from the yak, to you” Not the other way round.
I always used to find this hard. Don’t worry    Thank you I finished the level!!!   2 Likes