# Не получается пройти уровень

**URL:** <https://discourse.codecombat.com/t/topic/9382>\
**Category:** русский (Russian)\
**Created:** [October 19, 2016, 6:48am UTC](https://discourse.codecombat.com/t/topic/9382 "2016-10-19T06:48:13Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![ExPatron](https://avatars.discourse-cdn.com/v4/letter/e/ea666f/32.png) [@ExPatron](https://discourse.codecombat.com/u/ExPatron)\
**Post date:** [October 19, 2016, 6:48am UTC](https://discourse.codecombat.com/t/topic/9382/1 "2016-10-19T06:48:13Z")

</div>

Уровень Алмазная дюжина в Пустыне Сарвена. Требуется собрать оптимальное количество золота. Имеется такой код(комментарии удалены):

function findMostHealth(enemies) {  
var target = null;  
var targetHealth = 0;  
var enemyIndex = 0;  
while(enemyIndex \< enemies.length) {  
var enemy = enemies[enemyIndex];  
if(enemy.health \> targetHealth) {  
target = enemy;  
targetHealth = enemy.health;  
}  
enemyIndex += 1;  
}  
return target;  
}  
function findOptimalCoin(coins) {  
var bestCoin = null;  
var coinValue = 0;  
var coinIndex = 0;  
while(coinIndex \< coins.length) {  
var c = coins[coinIndex];  
if((c.value/hero.distanceTo©) \> coinValue) {  
bestCoin = c;  
coinValue = c.value/hero.distanceTo©;  
}  
coinIndex += 1;  
}  
return bestCoin;  
}

while(true) {  
var enemies = hero.findEnemies();  
var enemy = findMostHealth(enemies);  
if(enemy && enemy.health \> 15) {  
while(enemy.health \> 0) {  
hero.attack(enemy);  
}  
} else {  
var coins = hero.findItems();  
var coin = null;  
coin = findOptimalCoin(coins);  
if(coin) {  
hero.moveXY(coin.pos.x, coin.pos.y);  
}  
}  
}  
Подскажите,пожалуйста, где ошибка?

---

<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:** [October 19, 2016, 8:19am UTC](https://discourse.codecombat.com/t/topic/9382/2 "2016-10-19T08:19:25Z")

</div>

Remove var coin=null;

---

<div class="post-metadata">

**Author:** ![ExPatron](https://avatars.discourse-cdn.com/v4/letter/e/ea666f/32.png) [@ExPatron](https://discourse.codecombat.com/u/ExPatron)\
**Post date:** [October 19, 2016, 8:54am UTC](https://discourse.codecombat.com/t/topic/9382/3 "2016-10-19T08:54:19Z")

</div>

var coin=null; - строка присутствовала в изначальном коде,к тому же удаление этой строки ничего не дает кроме ошибки. В процессе выполнения мной была добавлена только функция findOptimalCoin().

---

<div class="post-metadata">

**Author:** ![Harry\_the\_Wanderer](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/harry_the_wanderer/32/5369_2.png) [@Harry\_the\_Wanderer](https://discourse.codecombat.com/u/Harry_the_Wanderer)\
**Post date:** [October 20, 2016, 11:45pm UTC](https://discourse.codecombat.com/t/topic/9382/4 "2016-10-20T23:45:51Z")

</div>

> [@ExPatron](#):
>
> coinValue = c.value/hero.distanceTo(c);

Are you sure about this line?  
Вы уверены, что об этой линии? ( [Google Translate](https://translate.google.com/#auto/ru/Are%20you%20sure%20about%20this%20line%3F) )

---

<div class="post-metadata">

**Author:** ![ExPatron](https://avatars.discourse-cdn.com/v4/letter/e/ea666f/32.png) [@ExPatron](https://discourse.codecombat.com/u/ExPatron)\
**Post date:** [November 7, 2016, 8:35am UTC](https://discourse.codecombat.com/t/topic/9382/5 "2016-11-07T08:35:32Z")

</div>

Строка правильная, рабочая.

---

<div class="post-metadata">

**Author:** ![ExPatron](https://avatars.discourse-cdn.com/v4/letter/e/ea666f/32.png) [@ExPatron](https://discourse.codecombat.com/u/ExPatron)\
**Post date:** [November 7, 2016, 8:37am UTC](https://discourse.codecombat.com/t/topic/9382/6 "2016-11-07T08:37:47Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![11191](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/11191/32/4989_2.png) [@11191](https://discourse.codecombat.com/u/11191)\
**Post date:** [March 19, 2017, 4:17pm UTC](https://discourse.codecombat.com/t/topic/9382/7 "2017-03-19T16:17:48Z")

</div>

тоже прошел только раза с 5 и только с кольцом и сапогами… (хотя с такой скоростью герой иногда умудряется взять несколько коинов). так и не понял где ошибка возможно в самом уровне…

function findMostHealth(enemies) {  
var target = null;  
var targetHealth = 0;  
var enemyIndex = 0;  
while(enemyIndex \< enemies.length) {  
var enemy = enemies[enemyIndex];  
if(enemy.health \> targetHealth) {  
target = enemy;  
targetHealth = enemy.health;  
}  
enemyIndex += 1;  
}  
return target;  
}

function valueOverDistance(item) {  
return item.value / hero.distanceTo(item);  
}

// Return the item with the highest valueOverDistance(item)  
function findBestItem(items) {  
var bestItem = null;  
var bestValue = 0;  
var i = 0;

```
// Loop over the items array.
// Find the item with the highest valueOverDistance()
while(items.length > i) {
    var item = items[i];  
    var value = valueOverDistance (item);

```

if( value \> bestValue){  
bestValue = value;  
bestItem = item;  
i++;  
}  
i++;  
}  
return bestItem;  
}

while(true) {  
var enemies = hero.findEnemies();  
var enemy = findMostHealth(enemies);  
if(enemy && enemy.health \> 15) {  
while(enemy.health \> 0) {  
if( hero.distanceTo(hero.findNearestEnemy()) \< 8 && enemy && hero.isReady(“cleave”)){ hero.cleave(enemy); }  
else if(enemy && hero.isReady(“bash”) && enemy.type === “ogre”){ hero.bash(enemy); }  
else if(enemy){hero.attack(enemy);  
}  
}  
} else {  
var coins = hero.findItems();  
var coin = null;  
coin = findBestItem(coins);  
if(coin) {  
hero.moveXY(coin.pos.x, coin.pos.y);  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![E\_Kassa](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/e_kassa/32/6741_2.png) [@E\_Kassa](https://discourse.codecombat.com/u/E_Kassa)\
**Post date:** [September 6, 2017, 7:20am UTC](https://discourse.codecombat.com/t/topic/9382/8 "2017-09-06T07:20:40Z")

</div>

i++ только один раз нужно

---

<div class="post-metadata">

**Author:** ![Vetermikado](https://avatars.discourse-cdn.com/v4/letter/v/7feea3/32.png) [@Vetermikado](https://discourse.codecombat.com/u/Vetermikado)\
**Post date:** [June 19, 2018, 4:45pm UTC](https://discourse.codecombat.com/t/topic/9382/9 "2018-06-19T16:45:56Z")

</div>

Здравствуйте! подскажите, где ж я косячу с уровнем “Известный враг”? Java script. Выжила, но не победила.

var enemy1 = “Kratt”;  
var enemy2 = “Gert”;  
var enemy3 = “Ursa”;  
hero.attack(enemy1);  
hero.attack(enemy1);  
hero.attack(enemy2);  
hero.attack(enemy2);  
hero.attack(enemy3);  
hero.attack(enemy3);
