Проблема в мародере! Я очень зол, на вас так как вы допустили баг. А я просидел 3 часа


#1

Проблема в том что я просидел 3 часа над прохождением уровней. А оказалось что у вас БАГ. Вот описание.
http://joxi.ru/E2pK4Y7hBGLY9m

И там написано что “До тех пор, пока его здоровье (health) больше 0.” Атакуйте врага.

но если ввести так как написано то будет ошибка!!!
http://joxi.ru/1A5dPqEtKbaQW2

А вот если ввести просто enemy без health то уровень проходиться!!!
var enemy = hero.findNearestEnemy();
if (enemy) {
hero.attack(enemy);
}

Как так то А??? Я просидел больше 3 часов. И даже в советах это сказано!!!
http://joxi.ru/brRJW3qCQOP3qr

Я очень зол на Вас и вашу компанию. Еще хотел друзьям рекомендовать, и на курсах про Вас рассказывать. Жду ответа.


#2

Выскажусь в защиту разработчиков. При чем тут они? У них бага нет.

Код следующий, согласно условию задачи.

if(enemy){
    while (enemy.health>0){
        hero.attack(enemy);
   }
}

Ошибка при интерпретации в том, что враги на карте присутсвуют не всегда. Именно для этого нужна проверка.

if(enemy)

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

if(enemy.health>0)

Пытается получить свойство health от переменной null(т.е. когда враги не присутсвуют на карте), о чем и сообщает ошибка на этом скриншоте
http://joxi.net/1A5dPqEtKbaQW2


#3

Извиняюсь, если уровень вызвал проблемы и злость. Но проверка на существование врага/предмета/друга была во многих уровнях до этого и поэтому данные концепты которые проходили ранее мы стараемся не повторять дабы не превращать уровни в совсем простое. Вы же хотите учится, а не просто переводить комменты в строки кода.

Насчет советов согласен - там небольшая ошибка


#4

Как вы могли заметить данный уровень находится в стадии Adventurer - то есть тестирование бета. У нас более 500 уровней и стараемся как можем следить за их качеством. К сожалению не всегда получается так как система и количество компонентов и систем растет и любое изменение может затронуть множество уровней. Плюс еще существует очень много вариантов экипировки героев, что иногда привносит еще множество сюрпризов в казалось бы протестированный от и до уровень.

Поэтому лучше если бы вместо устрашающих слов о том как вы злы и что мы лишимся толпы пользователей вы помогли фидбеком или отчетом чтобы мы могли поправить проблему. Данный форум это сообщество пользователей которые помогают друг другу. Если вам нужен оффициальный канал связи то используйте support@codecombat.com или team@codecombat.com . Приоритет в первую очередь в пользу платных пользователей,


#5

Забавно - пересмотрел уровень. Дело в том что в базовом коде написано это

enemy = hero.findNearestEnemy()
if enemy:
    # While enemy's health is greater than 0.
        
        # Attack enemy.
            
    pass

То есть уже был дан фрагмент кода показывающий что надо проверять наличие врага. Далее стоило использовать while внутри и проверять здоровье врага. Вы изменили код, решили пойти своим путем, но почему то считаете что это вина разработчиков. Если разрешите дам совет - если вы хотите стать программистов, стоит отойти от подхода “мой код идеальный - вокруг баги”. Из моей практики в 90 процентов случаев когда я видел баг при использовании фреймворка/библиотеки/технологии был именно у меня в коде и очень редко во внешнем.