# Drop the flag\_HELP! (Java script)

**URL:** <https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268>\
**Category:** Uncategorized\
**Created:** [January 12, 2017, 9:57pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268 "2017-01-12T21:57:12Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![IT\_MEH](https://avatars.discourse-cdn.com/v4/letter/i/73ab20/32.png) [@IT\_MEH](https://discourse.codecombat.com/u/IT_MEH)\
**Post date:** [January 12, 2017, 9:57pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/1 "2017-01-12T21:57:12Z")

</div>

I have been stuck on this level for quite a while now…PLEASE HELP. This is my code so far and the picture and the link:

link\_https://codecombat.com/play/level/drop-the-flag  
My code

// Put flags where you want to build traps.  
// When you’re not building traps, pick up coins!

while(true) {  
var flag = hero.findFlag();  
if (flag) {  
// How do we get flagX and flagY from the flag’s pos?  
// (Look below at how to get x and y from items.)  
var itemPos = item.pos;  
var itemX = itemPos.x;  
var itemY = itemPos.y;  
hero.moveXY(itemX, itemY);

```
    var flag = hero.findFlag("green");
    hero.buildXY("fire-trap", flagX, flagY);
    hero.pickUpFlag(flag);
}
else {
    var item = hero.findNearestItem();
    if (item) {
        var itemPos = item.pos;
        var itemX = itemPos.x;
        var itemY = itemPos.y;
        hero.moveXY(itemX, itemY);
    }
}

```

}

this is what it looks like

 ![](https://us1.discourse-cdn.com/flex016/uploads/codecombat/original/2X/3/3213e20d0e8be33a3c6f2a5c1a794e6f311a1111.png)

---

<div class="post-metadata">

**Author:** ![RenziYT](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/renziyt/32/5374_2.png) [@RenziYT](https://discourse.codecombat.com/u/RenziYT)\
**Post date:** [January 12, 2017, 11:55pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/2 "2017-01-12T23:55:32Z")

</div>

Put it all in loop and put all var under while loop

---

<div class="post-metadata">

**Author:** ![IT\_MEH](https://avatars.discourse-cdn.com/v4/letter/i/73ab20/32.png) [@IT\_MEH](https://discourse.codecombat.com/u/IT_MEH)\
**Post date:** [January 13, 2017, 9:45pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/3 "2017-01-13T21:45:54Z")

</div>

What do you mean? I already have a loop on it.

while(true) {  
var flag = hero.findFlag();  
if (flag) {  
// How do we get flagX and flagY from the flag’s pos?  
// (Look below at how to get x and y from items.)  
var itemPos = item.pos;  
var itemX = itemPos.x;  
var itemY = itemPos.y;  
hero.moveXY(itemX, itemY);

```
var flag = hero.findFlag("green");
hero.buildXY("fire-trap", flagX, flagY);
hero.pickUpFlag(flag);

```

}  
else {  
var item = hero.findNearestItem();  
if (item) {  
var itemPos = item.pos;  
var itemX = itemPos.x;  
var itemY = itemPos.y;  
hero.moveXY(itemX, itemY);  
}  
}  
}

Would you mind hilighting the part where you are talking about for me?

---

<div class="post-metadata">

**Author:** ![RenziYT](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/renziyt/32/5374_2.png) [@RenziYT](https://discourse.codecombat.com/u/RenziYT)\
**Post date:** [January 14, 2017, 12:25am UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/4 "2017-01-14T00:25:20Z")

</div>

Problem is that you said if item instead of finding the flag so your item is undefined.

Look below:

while(true) {  
var flag = hero.findFlag();  
if ( **flag** ) {  
// How do we get flagX and flagY from the flag’s pos?  
// (Look below at how to get x and y from items.)  
var **item** Pos = **item**.pos;  
var **item** X = **item** Pos.x;  
var **item** Y = **item** Pos.y;  
hero.moveXY(itemX, itemY);

var flag = hero.findFlag(“green”);  
hero.buildXY(“fire-trap”, flagX, flagY);  
hero.pickUpFlag(flag);  
}

So you didn’t define Item, cause you defined flag, so in your code you’re finding item instead of flag.

---

<div class="post-metadata">

**Author:** ![RenziYT](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/renziyt/32/5374_2.png) [@RenziYT](https://discourse.codecombat.com/u/RenziYT)\
**Post date:** [January 16, 2017, 5:02pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/5 "2017-01-16T17:02:44Z")

</div>

Got it fixed???

---

<div class="post-metadata">

**Author:** ![IT\_MEH](https://avatars.discourse-cdn.com/v4/letter/i/73ab20/32.png) [@IT\_MEH](https://discourse.codecombat.com/u/IT_MEH)\
**Post date:** [January 17, 2017, 10:33pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/6 "2017-01-17T22:33:04Z")

</div>

No everytime i reset it so that could try te code over again it automaticlly tells me its wrong…

```
hero.buildXY("fire-trap", flagX, flagY);

```

That this is wromg.  
this is code on reset:

// Put flags where you want to build traps.  
// When you’re not building traps, pick up coins!

while(true) {  
var flag = hero.findFlag();  
if (flag) {  
// How do we get flagX and flagY from the flag’s pos?  
// (Look below at how to get x and y from items.)

```
    hero.buildXY("fire-trap", flagX, flagY);
    hero.pickUpFlag(flag);
}
else {
    var item = hero.findNearestItem();
    if (item) {
        var itemPos = item.pos;
        var itemX = itemPos.x;
        var itemY = itemPos.y;
        hero.moveXY(itemX, itemY);
    }
}

```

}

---

<div class="post-metadata">

**Author:** ![RenziYT](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/renziyt/32/5374_2.png) [@RenziYT](https://discourse.codecombat.com/u/RenziYT)\
**Post date:** [January 17, 2017, 11:57pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/7 "2017-01-17T23:57:49Z")

</div>

Write your code and take a screenshot and send it here to me.

---

<div class="post-metadata">

**Author:** ![juraj\_pechac](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/juraj_pechac/32/4987_2.png) [@juraj\_pechac](https://discourse.codecombat.com/u/juraj_pechac)\
**Post date:** [January 18, 2017, 5:05am UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/8 "2017-01-18T05:05:04Z")

</div>

How do we get flagX and flagY from the flag’s pos?

flagX=flag.pos.x  
flagY=?

---

<div class="post-metadata">

**Author:** ![IT\_MEH](https://avatars.discourse-cdn.com/v4/letter/i/73ab20/32.png) [@IT\_MEH](https://discourse.codecombat.com/u/IT_MEH)\
**Post date:** [January 18, 2017, 9:46pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/9 "2017-01-18T21:46:50Z")

</div>

What do you mean everytime i RESET THE GAME is when it happens. For somereason it does this and i never understand why plus its always wrog…

---

<div class="post-metadata">

**Author:** ![RenziYT](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/renziyt/32/5374_2.png) [@RenziYT](https://discourse.codecombat.com/u/RenziYT)\
**Post date:** [January 18, 2017, 10:34pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/10 "2017-01-18T22:34:59Z")

</div>

dude I’m saying that look you’re code

while(true) {  
var flag = hero.findFlag();  
if (flag) {  
// How do we get flagX and flagY from the flag’s pos?  
// (Look below at how to get x and y from items.)  
var itemPos = item.pos;  
var itemX = itemPos.x;  
var itemY = itemPos.y;  
hero.moveXY(itemX, itemY);

var flag = hero.findFlag(“green”);  
hero.buildXY(“fire-trap”, flagX, flagY);  
hero.pickUpFlag(flag);  
}  
else {  
var item = hero.findNearestItem();  
if (item) {  
var itemPos = item.pos;  
var itemX = itemPos.x;  
var itemY = itemPos.y;  
hero.moveXY(itemX, itemY);  
}  
}  
}

problem is that you put var flag = hero.findFlag();  
and then you put

if (flag) {  
**var itemPos = item.pos**  
…  
…  
…  
}

not the flag, so basically you created a variable and you’re looking for the

1. variable that you didn’t define
2. The wrong variable

Also @juraj_pechac tried to explain you that you have to find flag’s pos, not the items pos.

---

<div class="post-metadata">

**Author:** ![IT\_MEH](https://avatars.discourse-cdn.com/v4/letter/i/73ab20/32.png) [@IT\_MEH](https://discourse.codecombat.com/u/IT_MEH)\
**Post date:** [January 20, 2017, 9:52pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/11 "2017-01-20T21:52:03Z")

</div>

Ok but its still saying that i am wrong…

 ![](https://us1.discourse-cdn.com/flex016/uploads/codecombat/original/2X/7/73214863e70cb4b7288aca8f50a3a5df0ed85c9a.png)

I dont understand whats going on

---

<div class="post-metadata">

**Author:** ![IT\_MEH](https://avatars.discourse-cdn.com/v4/letter/i/73ab20/32.png) [@IT\_MEH](https://discourse.codecombat.com/u/IT_MEH)\
**Post date:** [January 20, 2017, 10:16pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/12 "2017-01-20T22:16:00Z")

</div>

I just figured it out. My code was right i just was’nt putting my flags on the x. Sorry about that I am new to this whole thing. Thankyou soo much for your help.

---

<div class="post-metadata">

**Author:** ![RenziYT](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/renziyt/32/5374_2.png) [@RenziYT](https://discourse.codecombat.com/u/RenziYT)\
**Post date:** [January 20, 2017, 11:15pm UTC](https://discourse.codecombat.com/t/drop-the-flag-help-java-script/10268/13 "2017-01-20T23:15:15Z")

</div>

xD lol, I actually thought that you didn’t put the flags.
