# Сумма Сарвена, Пустыня Сарвен

**URL:** <https://discourse.codecombat.com/t/topic/30293>\
**Category:** русский (Russian)\
**Created:** [September 1, 2021, 4:31pm UTC](https://discourse.codecombat.com/t/topic/30293 "2021-09-01T16:31:40Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Action\_Group](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/action_group/32/15482_2.png) [@Action\_Group](https://discourse.codecombat.com/u/Action_Group)\
**Post date:** [September 1, 2021, 4:31pm UTC](https://discourse.codecombat.com/t/topic/30293/1 "2021-09-01T16:31:40Z")

</div>

```python
// Чтобы отключить огненные ловушки, сложи наименьшее и наибольшее значения `trap.value`
// Иди к белой отметке X и скажи Китти результат.
// Сокруши всех огров, если осмелишься.
// Как только все огры повержены, иди на красную отметку X
// Ищи зелье, чтобы поправить здоровье.

var whiteX = {x:27, y:42};
var redX = {x:151 , y: 118};

while(true) {
    var fultrap = null;
    var nultrap = null;
    var trapsIndex = 0;
    var maxTrap = 9999;
    var minTrap = 0;
    var trapfire = hero.findByType("fire-trap");
    while(trapfire.length > trapsIndex) {
        var trap = trapfire[trapsIndex];
        if ( trap.value < maxTrap){
         fultrap = trap;
         maxTrap = fultrap.value;
        }
        if (trap.value > minTrap){
            nultrap = trap;
            minTrap = nultrap.value;
        }
        trapsIndex++;
    }
    hero.moveXY(27, 42);
    hero.say(maxTrap.value + minTrap.value );
    break;
}   
while(true) {
    var maxDistance = 0;
    var enemyIndex = 0;
    var asteroid = null;
    var enemies = hero.findEnemies();
    while(enemies.length > enemyIndex) {
        var enemy = enemies[enemyIndex];
        enemyIndex++;
        
        var distance = hero.distanceTo(enemy);
        if (distance > maxDistance){
            maxDistance = distance;
            asteroid = enemy;
        }
        if (asteroid){
            hero.attack(asteroid);
        }else{
            hero.moveXY(151, 118);
        }
    }
    break;
}

```

Пожалуйста, помогите мне понять, почему этот код не работает.  
Когда появляются враги, он не атакует!  
Даже не говори ничего Кити!

link–[CodeCombat - Coding games to learn Python and JavaScript](https://codecombat.com/play/level/sarven-sum)?

---

<div class="post-metadata">

**Author:** ![Aya](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/aya/32/42680_2.png) [@Aya](https://discourse.codecombat.com/u/Aya)\
**Post date:** [September 1, 2021, 4:54pm UTC](https://discourse.codecombat.com/t/topic/30293/2 "2021-09-01T16:54:38Z")

</div>

> [@Action\_Group](#):
>
> ```python
> while(trapfire.length > trapsIndex) {
> var trap = trapfire[trapsIndex];
> if ( trap.value < maxTrap){
> fultrap = trap;
> maxTrap = fultrap.value;
> }
> if (trap.value > minTrap){
> nultrap = trap;
> minTrap = nultrap.value;
> }
> trapsIndex++;
> 
> ```

> [@Action\_Group](#):
>
> ```python
> while(enemies.length > enemyIndex) {
> var enemy = enemies[enemyIndex];
> enemyIndex++;
> 
> ```

если вы замените эти 2 фрагмента кода на `for loop`, он может лучше подойти.  
Например:

```python
for (i in array) {
     code to be executed
     }

```

---

<div class="post-metadata">

**Author:** ![Action\_Group](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/action_group/32/15482_2.png) [@Action\_Group](https://discourse.codecombat.com/u/Action_Group)\
**Post date:** [September 2, 2021, 8:59am UTC](https://discourse.codecombat.com/t/topic/30293/3 "2021-09-02T08:59:50Z")

</div>

Не понимаю\ я заменил и все равно не работает.  
for - это операторы pyton-- разве нет? я пищу на JS.  
Я поменял  
while true loop  
на  
while loop  
… пращу помоги понять

---

<div class="post-metadata">

**Author:** ![Aya](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/aya/32/42680_2.png) [@Aya](https://discourse.codecombat.com/u/Aya)\
**Post date:** [September 2, 2021, 9:41am UTC](https://discourse.codecombat.com/t/topic/30293/4 "2021-09-02T09:41:18Z")

</div>

Не могли бы вы опубликовать свой новый код?

Can you please post your code?

---

<div class="post-metadata">

**Author:** ![Aya](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/aya/32/42680_2.png) [@Aya](https://discourse.codecombat.com/u/Aya)\
**Post date:** [September 2, 2021, 9:49am UTC](https://discourse.codecombat.com/t/topic/30293/5 "2021-09-02T09:49:35Z")

</div>

> [@Action\_Group](#):
>
> `if ( trap.value < maxTrap)`

Кроме того, не следует переворачивать знак. Вместо “\<” это могло бы подойти лучше “\>”

> [@Action\_Group](#):
>
> `if (trap.value > minTrap)`

То же самое здесь, я думаю, должно быть наоборот

---

<div class="post-metadata">

**Author:** ![Action\_Group](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/action_group/32/15482_2.png) [@Action\_Group](https://discourse.codecombat.com/u/Action_Group)\
**Post date:** [September 2, 2021, 11:02am UTC](https://discourse.codecombat.com/t/topic/30293/6 "2021-09-02T11:02:27Z")

</div>

```python
while(true) {
    var fultrap = null;
    var nultrap = null;
    var trapsIndex = 0;
    var maxTrap = 9999;
    var minTrap = 0;
    var trapfire = hero.findByType("fire-trap");
    while (trapfire.length > trapsIndex) {
        var trap = trapfire[trapsIndex];
        if ( trap.value > maxTrap){
         fultrap = trap;
         maxTrap = fultrap.value;
        }
        if (trap.value < minTrap){
            nultrap = trap;
            minTrap = nultrap.value;
        }
        trapsIndex++;
    }
    var trapsum = (minTrap.value + maxTrap.value);
    hero.moveXY(27, 42);
    pet.say(trapsum);
    break;
}   

```

он не передает ничего китти. он что не понимает чего он должен сложить?

---

<div class="post-metadata">

**Author:** ![Aya](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/aya/32/42680_2.png) [@Aya](https://discourse.codecombat.com/u/Aya)\
**Post date:** [September 2, 2021, 11:07am UTC](https://discourse.codecombat.com/t/topic/30293/7 "2021-09-02T11:07:52Z")

</div>

Можете прислать скриншот уровня? Чтобы я мог знать, что нужно для этого.

---

<div class="post-metadata">

**Author:** ![Action\_Group](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/action_group/32/15482_2.png) [@Action\_Group](https://discourse.codecombat.com/u/Action_Group)\
**Post date:** [September 2, 2021, 11:21am UTC](https://discourse.codecombat.com/t/topic/30293/8 "2021-09-02T11:21:27Z")

</div>

![code](https://us1.discourse-cdn.com/flex016/uploads/codecombat/original/3X/6/7/67e9d385e21f3776d340ba2cdb377bfd7294aaa3.jpeg)

```python
// Чтобы отключить огненные ловушки, сложи наименьшее и наибольшее значения `trap.value`
// Иди к белой отметке X и скажи Китти результат.
// Сокруши всех огров, если осмелишься.
// Как только все огры повержены, иди на красную отметку X
// Ищи зелье, чтобы поправить здоровье.

var whiteX = {x:27, y:42};
var redX = {x:151 , y: 118};

while(true) {
    var fultrap = null;
    var nultrap = null;
    var trapsIndex = 0;
    var maxTrap = 9999;
    var minTrap = 0;
    var trapfire = hero.findByType("fire-trap");
    while (trapfire.length > trapsIndex) {
        var trap = trapfire[trapsIndex];
        if ( trap.value > maxTrap){
         fultrap = trap;
         maxTrap = fultrap.value;
        }
        if (trap.value < minTrap){
            nultrap = trap;
            minTrap = nultrap.value;
        }
        trapsIndex++;
    }
    var trapsum = (minTrap.value + maxTrap.value);
    hero.moveXY(27, 42);
    pet.say(trapsum);
    break;
}   
while(true) {
    var maxDistance = 0;
    var enemyIndex = 0;
    var asteroid = null;
    var enemies = hero.findEnemies();
    while(enemies.length > enemyIndex) {
        var enemy = enemies[enemyIndex];
        enemyIndex++;
        
        var distance = hero.distanceTo(enemy);
        if (distance > maxDistance){
            maxDistance = distance;
            asteroid = enemy;
        }
        if (asteroid){
            hero.attack(asteroid);
        }else{
            hero.moveXY(151, 118);
        }
    }
}

```

может заделать иво как function и патом в while создать процесс – как этом уровне  
link – [CodeCombat - Coding games to learn Python and JavaScript](https://codecombat.com/play/level/sarven-treasure)?

```python
// Собери 150 золота, избегая огров с помощью телепортов.
// С каждой победой уровень становится сложнее (но и вознаграждение больше).
// Если проиграешь, придётся ждать сутки до следующей попытки.
// Запомни, обстановка меняется каждый раз.

var leftTop = {x:5, y:49};
var leftBottom = {x:4, y:19};
var ringhtTop = {x:76, y:51};
var ringhtBottom = {x:77, y:19};

// aici incepe functia 

function coinPort(){
    var coinsColetPort = null;
    var coinsIndex = 0;
    var minDistance = 0;
    var coinColet = hero.findItems();
    while(coinColet.length > coinsIndex) {
        var coin = coinColet[coinsIndex];
        
        var distance = hero.distanceTo(coin);
        if (distance < minDistance){
            minDistance = distance;
            coinsColetPort = coin;
        }
        coinsIndex++;
    }
    return coinsColetPort;
}

function enemyOgredis(){
    var minDistances = 0;
    var enemyIndex = 0;
    var enemies = hero.findEnemies();
    var enemyOgres = null;

    while(enemies.length > enemyIndex) {
    var enemy = enemies[enemyIndex];

    var distances = hero.distanceTo(enemy);
    if (distances < minDistances){
        minDistances = distances;
        enemyOgres = enemy;
    }
  enemyIndex++;
    }
    return enemyOgres;
}

while(true) {
    var coinsCool = coinPort();
    var enemyDis = enemyOgredis();
    var flag = hero.findFlag();
    if (coinsCool){
        hero.moveXY(coinsCool.pos.x, coinsCool.pos.y);
        if (enemyDis && hero.distanceTo(enemyDis) > hero.distanceTo(leftTop)){
            hero.moveXY(leftTop);
        }else {
             hero.moveXY(coinsCool.pos.x, coinsCool.pos.y);
        }
        if (enemyDis && hero.distanceTo(enemyDis) > hero.distanceTo(leftBottom)){
            hero.moveXY(leftBottom);
        }else {
             hero.moveXY(coinsCool.pos.x, coinsCool.pos.y);
        }
        if (enemyDis && hero.distanceTo(enemyDis) > hero.distanceTo(ringhtTop)){
            hero.moveXY(ringhtTop);
        }else{
             hero.moveXY(coinsCool.pos.x, coinsCool.pos.y);
        }
        
        if (enemyDis && hero.distanceTo(enemyDis) > hero.distanceTo(ringhtBottom)){
            hero.moveXY(ringhtBottom);
        }else{
             hero.moveXY(coinsCool.pos.x, coinsCool.pos.y);
        }
    }
    if (flag){
    hero.pickUpFlag(flag);
    }
}

```

---

<div class="post-metadata">

**Author:** ![Aya](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/aya/32/42680_2.png) [@Aya](https://discourse.codecombat.com/u/Aya)\
**Post date:** [September 2, 2021, 12:02pm UTC](https://discourse.codecombat.com/t/topic/30293/9 "2021-09-02T12:02:20Z")

</div>

> [@Action\_Group](#):
>
> ```python
> var maxTrap = 9999;
> var minTrap = 0;
> 
> ```

С помощью этого кода максимальные и минимальные значения никогда не будут достигнуты, поскольку максимальное значение никогда не будет больше 9999, а минимальное никогда не будет меньше нуля.

```python
var maxTrap = 0;
var minTrap = 9999

```
