Бэквудский лес. Металлодетектор

Хорошо, ты должен вернуть расстояние до монеты. Сначала вы находите расстояние до монеты с помощью hero.distanceTo(coin) и определяете его как переменную дистанцию. Затем, сделайте if distance > 0: #вставить сюда возврат hero.say(distance)
наконец, в цикле while true запустите coinDistance().

Что то с этим уровнем мне тяжело. Первый раз испытываю такие трудности. Я опять делаю что то не правильно.

Артиллерия использует монеты в качестве цели.

Ты будешь дальномером для артиллерии.

Напиши функцию.

def coinDistance():
# Найди ближайшую монету.
coin = hero.findNearestItem()
hero.distanceTo(coin)
if distance > 0:
hero.say(distance)

# Если видишь монету, верни расстояние до неё.
# В противном случае верни 0.
else:
    return 0
pass

while True:
distance = coinDistance()
if distance > 0:
# Сообщи расстояние.
coinDistance()
pass

In the while true loop, you do not need anything except coinDistance()
В то время как истинный цикл, вам ничего не нужно, кроме как coinDistance()

Но так не будет работать. так нельзя писать.

Артиллерия использует монеты в качестве цели.

Ты будешь дальномером для артиллерии.

Напиши функцию.

def coinDistance():
# Найди ближайшую монету.
coin = hero.findNearestItem()
hero.distanceTo(coin)
if distance > 0:
hero.say(distance)

# Если видишь монету, верни расстояние до неё.
# В противном случае верни 0.
else:
    return 0
pass

while True:
# Сообщи расстояние.
coinDistance()
pass

Пожалуйста, правильно отступите ваш код с помощью тройной обратной связи `.

Привет, тоже завис на этом уровне, но пройти удалось. Вот пишу на JS,но думаю разберешься
function coinDistance() {
// Найди ближайшую монету.
var coin = hero.findNearestItem();
// Если видишь монету, верни расстояние до неё.
if(coin) {return hero.distanceTo(coin);}
// В противном случае верни 0.
else {return 0;}
}

while (true) {
var distance = coinDistance();
if (distance > 0) {
// Сообщи расстояние.
hero.say(distance);
}
}

1 Like

Привет и добро пожаловать на дискурс codecombat! Это уютный форум, где вы можете поделиться идеями, поделиться фан-артом, получить помощь в написании кода и т. Д.! Прежде чем продолжить, мы надеемся, что вы ознакомитесь с [этой темой] (Welcome to CodeCombat Discourse Forums!), в которой показаны все основные сведения об этой доске! Благодарность!

1 Like

Здравствуйте, я не хочу, чтобы я мог помочь, но у меня нет кода боевой премии :sob:

Вот вроде бы близок к решению. Даже по монетам стреляет, но не по всем. Чувствуется что осталось доработать какую то мелочь.

Артиллерия использует монеты в качестве цели.

Ты будешь дальномером для артиллерии.

Напиши функцию.

def coinDistance():
# Найди ближайшую монету.
coin = hero.findNearestEnemy(coin)

# Если видишь монету, верни расстояние до неё.
if coin:
    return  hero.distanceTo(coin)
# В противном случае верни 0.
else :
    return 0
pass

while True:
distance = coinDistance()
if distance > 0:
# Сообщи расстояние.
hero.say(distance)
pass

Все я решил. 7 строка ошибка была. вместо врага нужно было дописать предмет. Спасибо. Буду теперь изучать код.

Теперь до меня дошло. Я решил задачу. Спасибо за подсказку, но я думал совсем в другом направлении. Да ту строку нужно было удалить. Вы были правы. и изменить True. Все решение было на поверхности, а я не видел.

Поздравляю с прохождением уровня!
Lydia

This topic was automatically closed 12 hours after the last reply. New replies are no longer allowed.