Запинается на последнем в "полезные конкуренты"


#1

Здравствуйте, помогите разобраться, пожалуйста. Герой останавливается, не доходя до самоцвета и уровень проигран. Хотя предмет как цель выбран. Есть какие-то ограничения по времени? Ошибки в коде? Или это баги игры?
Спасибо большое.

while (true) {
    var enemy = hero.findNearestEnemy();
    if (enemy) {
        if (enemy.type != "peon") {
            hero.attack(enemy);
        }
    }
    var item = hero.findNearestItem();
    if (item) {
        if (item.type != "poison") {
            hero.moveXY(item.pos.x, item.pos.y);
        }
    }
}


пробовала схему "собирай, пока видишь, иначе атакуй"

while(true) {

var item = hero.findNearestItem();
if(item) {
    if(item.type != "poison") {
        hero.moveXY(item.pos.x, item.pos.y);
    }
    else {
        var enemy = hero.findNearestEnemy();
        if(enemy) {
                 if(enemy.type != "peon" ) {
                    hero.attack(enemy);
                 }
        }
    }
}

}

теперь запинается на последнем враге. просто не бъет его и всё

if (item==null) break; Тоже не работает


#2

Попробуй поменять местами приоритеты, сейчас твои приоритеты выставлены так:

  1. Сначала найти и уничтожить врага
  2. потом найти и подобрать монету.

Поменяй их местами

  1. Сначала найти и подобрать монету
  2. Если рядом есть враг - уничтожить врага.

Думаю в этом случае тебе хватит времени.


#3

Не помогло, к сожалению ;(


#4

пробовала условием выполнения цикла сделать предмет:

var item = hero.findNearestItem();
while (item) {

Та же ошибка, но теперь ещё и предупреждение: "Код сотворения мира не завершил выполнение. Это могло случиться из-за очень медленного кода или наличия бесконечного цикла."
Каким чудом, если как раз мой цикл конечен? (до тех пор, пока существует предмет)


#6

Попробуйте первую схему и пару раз нажать потвердить. К сожалению у данного уровня есть проблемы с так сказать “плохими сидами”. Если не поможет - отпишитесь пожалуйста здесь, будем думать как исправить данный уровень


#7

Удивтельным образом заработало) Спасибо большое! =)


#8

Да ничего удивительного. На каждый “сабмит” генерируется новый сид для случайных величин. К сожалению в данном уровне некоторые комбинации “непроходимы” (точнее требуют более сложного кода (сильно сложнее)). Поэтому и помогла, но надо конечно решать проблему. Не дело это. Спасибо за фидбек - будем думать


#9

Поле с монетами усеяно флаконами со смертельным ядом.

Огры нападают, а в это время их батраки пытаются украсть твои монеты!

Атакуй врагов, если их тип (type) не равен “peon”.

hero.moveXY(16, 19)
hero.moveXY(8, 28)
hero.moveXY(16, 29)
hero.moveXY(8, 35)
hero.moveXY(16, 44)
hero.moveXY(16, 52)
hero.moveXY(8, 52)
hero.moveXY(35, 35)
while True:
enemy = hero.findNearestEnemy()
if enemy:
if enemy.type != “peon”:
hero.attack(enemy)
item = hero.findNearestItem()
if item:
# Собери предмет, если его тип (type) не равен “poison”.

    pass

while True:
enemy = hero.findNearestEnemy()
hero.attack(enemy)