Помогите пройти уровень. Возникла еще одна проблема. Вроде бы все верно , но возникает какая то ошибка, что цель не определена. Как такое может быть? Я же ее указал.
# Не атакуй бурлов!
# Функция может возвращать значение.
# Результатом вызова функции станет число, которое она вернула.
def shouldAttack(target):
# return False Если нет цели
if not target:
return false
# return False Если видишь бурла
if target.type == "burl":
return false
else:
# Иначе, return True
return True
while True:
enemy = hero.findNearestEnemy()
# Используй функцию `shouldAttack()`, чтобы принять решение об атаке!
# Переменной `heroShouldAttack` будет присвоено значение, которое вернула функция `shouldAttack()`!
heroShouldAttack = shouldAttack(enemy)
if heroShouldAttack:
hero.attack(enemy)
Не понял. мы пишем, если нет цели то возвращение к функции атаки ложное. Далее мы пишем, если цель бурл, то возвращение к функции атаки ложное. Затем должно следовать возвращение в остальных случаях к функции атаки истинно. Почему вы предлагаете написать там тоже ложь? Так же не будет работать код. Поясните пожалуйста.
Я имел в виду, что в первой части, где вы возвращаете false, вы должны возвращать False с большой буквы, то же самое для следующей. Для возврата True удалите оператор else, и он должен работать.
What I meant was that in the first part, where you return false, you should return False with a capital F, same for the next one. For the return True, delete the else statement, and it should work.
Да это была ошибка в заглавной букве. Но сейчас герой не атакует врагов. Что то опять не так.
# Не атакуй бурлов!
# Функция может возвращать значение.
# Результатом вызова функции станет число, которое она вернула.
def shouldAttack(target):
# return False Если нет цели
if not target:
return False
# return False Если видишь бурла
if target.type == "burl":
return False
# Иначе, return True
return True
while True:
enemy = hero.findNearestEnemy()
# Используй функцию `shouldAttack()`, чтобы принять решение об атаке!
# Переменной `heroShouldAttack` будет присвоено значение, которое вернула функция `shouldAttack()`!
heroShouldAttack = shouldAttack(enemy)
if heroShouldAttack:
hero.attack(enemy)