# Protect and serve, please help!

**URL:** <https://discourse.codecombat.com/t/protect-and-serve-please-help/33201>\
**Category:** Level Help\
**Created:** [June 21, 2022, 3:43pm UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201 "2022-06-21T15:43:28Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cedar](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/cedar/32/29302_2.png) [@Cedar](https://discourse.codecombat.com/u/Cedar)\
**Post date:** [June 21, 2022, 3:43pm UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/1 "2022-06-21T15:43:28Z")

</div>

```python
# Protect the workers and animals!

# Defend these two positions:
defend = []
defend[0] = { "x": 98, "y": 28 }
defend[1] = { "x": 84, "y": 7 }

soldiers = []

friends = hero.findFriends()
for index in range(len(friends)):
    friend = friends[index]
    if friend.type == "soldier":
        soldiers.append(friend)
    else:
        # Defend the workers:
        defend.append(friend)

while True:
    enemy = hero.findNearestEnemy()
    
    # Use a for-loop to assign each soldier to a corresponding defend[] target
    # Use command(soldier, "defend", thang) or command(soldier, "defend", position)
    if friend.type == "soldier":
        hero.command(friend, "attack", enemy)
    if enemy:
        if hero.isReady("throw"):
            hero.throw(enemy)
        if hero.canCast("chain-lightning", enemy):
            hero.cast("chain-lightning", enemy)
        hero.attack(enemy)
    pass

```

---

<div class="post-metadata">

**Author:** ![PeterPalov](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/peterpalov/32/45280_2.png) [@PeterPalov](https://discourse.codecombat.com/u/PeterPalov)\
**Post date:** [June 21, 2022, 5:46pm UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/2 "2022-06-21T17:46:27Z")

</div>

> [@Cedar](#):
>
> ```python
> if friend.type == "soldier":
> hero.command(friend, "attack", enemy)
> if enemy:
> if hero.isReady("throw"):
> hero.throw(enemy)
> if hero.canCast("chain-lightning", enemy):
> hero.cast("chain-lightning", enemy)
> hero.attack(enemy)
> pass
> 
> ```

You should use a for-loop here:

> [@Cedar](#):
>
> `# Use a for-loop to assign each soldier to a corresponding defend[] target`

---

<div class="post-metadata">

**Author:** ![riticmaster908](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/riticmaster908/32/43503_2.png) [@riticmaster908](https://discourse.codecombat.com/u/riticmaster908)\
**Post date:** [June 22, 2022, 12:38am UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/3 "2022-06-22T00:38:28Z")

</div>

try using a for loop like this:

```python
for i in range(len(whatever ur soldiers array is named)):

```

---

<div class="post-metadata">

**Author:** ![FrostByte](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/frostbyte/32/29050_2.png) [@FrostByte](https://discourse.codecombat.com/u/FrostByte)\
**Post date:** [June 28, 2022, 12:20am UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/4 "2022-06-28T00:20:01Z")

</div>

Or just `for unit in array`.

---

<div class="post-metadata">

**Author:** ![riticmaster908](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/riticmaster908/32/43503_2.png) [@riticmaster908](https://discourse.codecombat.com/u/riticmaster908)\
**Post date:** [June 28, 2022, 6:01am UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/5 "2022-06-28T06:01:41Z")

</div>

using i is a bit more cleaner

---

<div class="post-metadata">

**Author:** ![moonwatcher348](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/moonwatcher348/32/24126_2.png) [@moonwatcher348](https://discourse.codecombat.com/u/moonwatcher348)\
**Post date:** [June 28, 2022, 1:38pm UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/6 "2022-06-28T13:38:52Z")

</div>

No xD but we’re not here to argue, just use one of the methods

---

<div class="post-metadata">

**Author:** ![MarmiteOnToast](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/marmiteontoast/32/46649_2.png) [@MarmiteOnToast](https://discourse.codecombat.com/u/MarmiteOnToast)\
**Post date:** [June 28, 2022, 2:45pm UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/7 "2022-06-28T14:45:37Z")

</div>

```python

agree = ["I", "agree"]

for i in agree:
    hero.say(i)

```

---

<div class="post-metadata">

**Author:** ![moonwatcher348](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/moonwatcher348/32/24126_2.png) [@moonwatcher348](https://discourse.codecombat.com/u/moonwatcher348)\
**Post date:** [June 29, 2022, 11:41am UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/9 "2022-06-29T11:41:55Z")

</div>

This is kinda spam…

---

<div class="post-metadata">

**Author:** ![FrostByte](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/frostbyte/32/29050_2.png) [@FrostByte](https://discourse.codecombat.com/u/FrostByte)\
**Post date:** [June 29, 2022, 11:51am UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/10 "2022-06-29T11:51:58Z")

</div>

Using `i` in functions can allow for more robust functions, but I prefer `for object of array` (or `for object in array` if you use Python) because it’s cleaner.

---

<div class="post-metadata">

**Author:** ![Cedar](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/cedar/32/29302_2.png) [@Cedar](https://discourse.codecombat.com/u/Cedar)\
**Post date:** [August 26, 2022, 8:48pm UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/11 "2022-08-26T20:48:39Z")

</div>

I fixed my code. I forget how, but I fixed it. Thanks for all of the help.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/codecombat/original/2X/a/a9445509d1a758c41b5ddcddc8c8e20a5dedb67f.png) [@system](https://discourse.codecombat.com/u/system)\
**Post date:** [August 27, 2022, 8:49am UTC](https://discourse.codecombat.com/t/protect-and-serve-please-help/33201/12 "2022-08-27T08:49:30Z")

</div>

Closed on August 27, 2022, 8:49am UTC

This topic was automatically closed 12 hours after the last reply. New replies are no longer allowed.
