# Испытание: Один Волшебник

**URL:** https://discourse.codecombat.com/t/topic/27113
**Category:** русский (Russian)
**Created:** [January 29, 2021, 11:07am UTC](https://discourse.codecombat.com/t/topic/27113 "2021-01-29T11:07:03Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Oleksha](https://avatars.discourse-cdn.com/v4/letter/o/b3f665/32.png) [@Oleksha](https://discourse.codecombat.com/u/Oleksha)
#### Post date: [January 29, 2021, 11:07am UTC](https://discourse.codecombat.com/t/topic/27113/1 "2021-01-29T11:07:03Z")

</div>

Помогите, пожалуйста. Не могу понять, почему не использует сhain-lighting. И после того, как герой телепортируется для регенерации, не могу вернуть его на поле боя.

```python
def shouldRun():
    if hero.health<hero.maxHealth/3:
        return True
    else:
        return False

def attackEnemy():
    enemys=hero.findEnemies()
    enemy=hero.findNearestEnemy()
    if enemy:
        distance = hero.distanceTo(enemy)
        if distance < 30:
            indexEnemy=0
            besideEnemy=0
            while indexEnemy<len(enemys):
                if hero.distanceTo(enemys[indexEnemy])<20:
                    besideEnemy+=1
                indexEnemy+=1
            enemy=hero.findNearest(enemys)
            
            if hero.canCast("drain-life", enemys) and besideEnemy>3:
                hero.cast("drain-life", enemys)
            #if hero.canCast("lighting-bolt", enemy):
            # hero.cast("lighting-bolt", enemy)
            if besideEnemy>5 and hero.canCast("chain-lighting", enemys):
                hero.cast("chain-lighting", enemys)
            hero.attack(enemy)

while True:
    if shouldRun():
        hero.cast("regen", hero)
        hero.moveXY(32, 31)        
    else:
        attackEnemy()

```

---

<div class="post-metadata">

### Author: ![milton.jinich](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/milton.jinich/32/21419_2.png) [@milton.jinich](https://discourse.codecombat.com/u/milton.jinich)
#### Post date: [January 29, 2021, 12:49pm UTC](https://discourse.codecombat.com/t/topic/27113/2 "2021-01-29T12:49:44Z")

</div>

You can’t do drain life and welcome to the forum.

> [@Oleksha](#):
>
> ```python
> if hero.canCast("drain-life", enemys) and besideEnemy>3:
> hero.cast("drain-life", enemys)
> 
> ```

---

<div class="post-metadata">

### Author: ![abc](https://avatars.discourse-cdn.com/v4/letter/a/2bfe46/32.png) [@abc](https://discourse.codecombat.com/u/abc)
#### Post date: [January 29, 2021, 12:54pm UTC](https://discourse.codecombat.com/t/topic/27113/3 "2021-01-29T12:54:52Z")

</div>

Hello and welcome to codecombat discourse! This is a cozy forum where you can share ideas, share fan art, get assistance for code, etc! Before you proceed, we hope that you review [this topic](https://discourse.codecombat.com/t/welcome-to-codecombat-discourse-forums/15601), which shows all essentials of this board! Thanks!

Ваш герой телепортируется, только если его здоровье равно единице. Это означает, что вы умираете, поэтому вам понадобится лучший код.

---

<div class="post-metadata">

### Author: ![milton.jinich](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/milton.jinich/32/21419_2.png) [@milton.jinich](https://discourse.codecombat.com/u/milton.jinich)
#### Post date: [January 29, 2021, 1:04pm UTC](https://discourse.codecombat.com/t/topic/27113/4 "2021-01-29T13:04:05Z")

</div>

Вы не можете заниматься дренажной жизнью. Возможно, вы захотите сделать реган, когда нет врага, чтобы вы не набирали здоровье и быстро его теряли.

---

<div class="post-metadata">

### Author: ![Oleksha](https://avatars.discourse-cdn.com/v4/letter/o/b3f665/32.png) [@Oleksha](https://discourse.codecombat.com/u/Oleksha)
#### Post date: [February 1, 2021, 9:22am UTC](https://discourse.codecombat.com/t/topic/27113/5 "2021-02-01T09:22:06Z")

</div>

Спасибо). Да, уже поняла, что герой телепортируется не по моей воле). Код переписала, стало лучше, но пока не доработанный.

---

<div class="post-metadata">

### Author: ![Oleksha](https://avatars.discourse-cdn.com/v4/letter/o/b3f665/32.png) [@Oleksha](https://discourse.codecombat.com/u/Oleksha)
#### Post date: [February 1, 2021, 9:22am UTC](https://discourse.codecombat.com/t/topic/27113/6 "2021-02-01T09:22:44Z")

</div>

Спасибо за подсказку. Попробую переписать код в части регенерации.

---

<div class="post-metadata">

### Author: ![Oleksha](https://avatars.discourse-cdn.com/v4/letter/o/b3f665/32.png) [@Oleksha](https://discourse.codecombat.com/u/Oleksha)
#### Post date: [February 1, 2021, 10:05am UTC](https://discourse.codecombat.com/t/topic/27113/7 "2021-02-01T10:05:27Z")

</div>

```python
while True:
    enemys=hero.findEnemies()
    enemy=hero.findNearestEnemy()
    item = hero.findNearestItem()
    if item=="shell":
        hero.moveXY(hero.pos.x, hero.pos.y-5)
    if enemy:
        distance = hero.distanceTo(enemy)
        if hero.distanceTo(enemy) < 30:
            indexEnemy=0
            besideEnemy=0
            while indexEnemy<len(enemys):
                if hero.distanceTo(enemys[indexEnemy])<30:
                    besideEnemy+=1
                indexEnemy+=1
        if besideEnemy>5 and enemy.type=="scout" and hero.canCast("chain-lightning", enemy):
            hero.cast("chain-lightning", enemy)
        if besideEnemy>5 and enemy.type=="munchkin" and hero.isReady("lightning-bolt", enemy):
            hero.cast("lightning-bolt", enemy)
        hero.attack(enemy)
        if hero.canCast("regen", hero) and hero.distanceTo(enemy)>15:
            hero.cast("regen", hero)

```

Переписала код, но опять застряла. Не могу сообразить, как увернуться от снаряда катапульты. Пробовала через тип врага и через тип предмета. Тип прописывала СНАРЯД, ОГНЕННЫЙ ШАР и КАТАПУЛЬТА. Может, кто-то сможет подсказать, как правильно обозвать)?

---

<div class="post-metadata">

### Author: ![hellgenoid](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/hellgenoid/32/16456_2.png) [@hellgenoid](https://discourse.codecombat.com/u/hellgenoid)
#### Post date: [February 1, 2021, 3:04pm UTC](https://discourse.codecombat.com/t/topic/27113/8 "2021-02-01T15:04:25Z")

</div>

Тебе не нужно уворачиваться от снарядов. Проще убить катапульту, с помощью “lightning-bolt”.

---

<div class="post-metadata">

### Author: ![Oleksha](https://avatars.discourse-cdn.com/v4/letter/o/b3f665/32.png) [@Oleksha](https://discourse.codecombat.com/u/Oleksha)
#### Post date: [February 1, 2021, 4:00pm UTC](https://discourse.codecombat.com/t/topic/27113/9 "2021-02-01T16:00:20Z")

</div>

Спасибо за ответ). А как прописать? Не соображу, как оформить.

```python
        if enemy.type=="catapult" and hero.canCast("lightning-bolt", enemy):
            hero.cast("lightning-bolt", enemy)

```

Попробовала так, но герой игнорирует команду и атакует простой атакой.

---

<div class="post-metadata">

### Author: ![xython](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/xython/32/7269_2.png) [@xython](https://discourse.codecombat.com/u/xython)
#### Post date: [February 1, 2021, 9:51pm UTC](https://discourse.codecombat.com/t/topic/27113/10 "2021-02-01T21:51:21Z")

</div>

Отдайте приоритет уничтожению катапульты, поставив код первым

```python
        if enemy.type=="catapult" and hero.canCast("lightning-bolt", enemy):
            hero.cast("lightning-bolt", enemy)

```

Затем замените все следующие if на elif и в качестве последнего условия поставьте else для простой атаки. Я закончил уровень в своем python аккаунт, взяв за основу ваш код.

 ![the one wizard](https://us1.discourse-cdn.com/flex016/uploads/codecombat/original/3X/9/3/9321a312c8442d8c7e5506c008b1debb505e4992.png) Спасибо!

P.S. При первом решении уровня в javascript в основном профиле у меня была совершенно другая логика.

---

<div class="post-metadata">

### Author: ![Oleksha](https://avatars.discourse-cdn.com/v4/letter/o/b3f665/32.png) [@Oleksha](https://discourse.codecombat.com/u/Oleksha)
#### Post date: [February 2, 2021, 3:23am UTC](https://discourse.codecombat.com/t/topic/27113/11 "2021-02-02T03:23:40Z")

</div>

Большое спасибо за подсказку).Про приоритеты совсем не подумала. Очень приятно узнать, что мой код кому-то пригодился).

---

<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: [February 2, 2021, 3:24pm UTC](https://discourse.codecombat.com/t/topic/27113/12 "2021-02-02T15:24:37Z")

</div>

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