Выскажусь в защиту разработчиков. При чем тут они? У них бага нет.
Код следующий, согласно условию задачи.
if(enemy){
while (enemy.health>0){
hero.attack(enemy);
}
}
Ошибка при интерпретации в том, что враги на карте присутсвуют не всегда. Именно для этого нужна проверка.
if(enemy)
Твой фикс также корректен, но сделал код немного не оптимальным. В этом случае герой будет каждый раз искать врагов.
Этот же код
if(enemy.health>0)
Пытается получить свойство health от переменной null(т.е. когда враги не присутсвуют на карте), о чем и сообщает ошибка на этом скриншоте http://joxi.net/1A5dPqEtKbaQW2
Извиняюсь, если уровень вызвал проблемы и злость. Но проверка на существование врага/предмета/друга была во многих уровнях до этого и поэтому данные концепты которые проходили ранее мы стараемся не повторять дабы не превращать уровни в совсем простое. Вы же хотите учится, а не просто переводить комменты в строки кода.
Как вы могли заметить данный уровень находится в стадии Adventurer - то есть тестирование бета. У нас более 500 уровней и стараемся как можем следить за их качеством. К сожалению не всегда получается так как система и количество компонентов и систем растет и любое изменение может затронуть множество уровней. Плюс еще существует очень много вариантов экипировки героев, что иногда привносит еще множество сюрпризов в казалось бы протестированный от и до уровень.
Поэтому лучше если бы вместо устрашающих слов о том как вы злы и что мы лишимся толпы пользователей вы помогли фидбеком или отчетом чтобы мы могли поправить проблему. Данный форум это сообщество пользователей которые помогают друг другу. Если вам нужен оффициальный канал связи то используйте support@codecombat.com или team@codecombat.com . Приоритет в первую очередь в пользу платных пользователей,
Забавно - пересмотрел уровень. Дело в том что в базовом коде написано это
enemy = hero.findNearestEnemy()
if enemy:
# While enemy's health is greater than 0.
# Attack enemy.
pass
То есть уже был дан фрагмент кода показывающий что надо проверять наличие врага. Далее стоило использовать while внутри и проверять здоровье врага. Вы изменили код, решили пойти своим путем, но почему то считаете что это вина разработчиков. Если разрешите дам совет - если вы хотите стать программистов, стоит отойти от подхода “мой код идеальный - вокруг баги”. Из моей практики в 90 процентов случаев когда я видел баг при использовании фреймворка/библиотеки/технологии был именно у меня в коде и очень редко во внешнем.