Play Home Contribute Github Join Us! Discourse Staff Members Github Contribution Guides Team

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

Второй день бьюсь над этим кодом. Что не так?
Герой как буд-то не видит монету и не забирает её.
Такой ощущение что функция takeItem не выполняется


# Собери монеты и сбеги, пока бурл не нашёл тебя.

# This function allows your hero take an item.
def takeItem(item):
    hero.moveXY(item.pos.x, item.pos.y)
    
# Напиши функцию `checkTakeRun` с одним параметром.
# If the item exists, use "takeItem" function to take it.
# Двигайся на исходную точку (зелёная отметка), вне зависимости от наличия предмета.
def checkTakeRun(coin):
    if coin == True:
        takeItem(coin)
    else:
        hero.moveXY(40, 13)

# Не меняй этот код.
while True:
    hero.moveXY(16, 56)
    coin = hero.findNearestItem()
    checkTakeRun(coin)
    hero.moveXY(64, 56)
    coin = hero.findNearestItem()
    checkTakeRun(coin)

Проблема заключается в вашем определении checkTakeRun. Вы хотите, чтобы он вернулся к началу, несмотря ни на что, поэтому не должно быть никаких других оговорок.

English

The problem lies in your checkTakeRun definition. You want him to run back to the start, no matter what, so there should be no else clause.

Спасибо [dedreous]. Решил задачу без проверки на истинность монет. Возвращая, в любом случае, героя назад.

def checkTakeRun(coin):
    if coin:
        takeItem(coin)
        hero.moveXY(40, 13)
    else:
        hero.moveXY(40, 13)

Thanks. Solved the problem without checking for the truth of the coins. Returning, in any case, the hero back.

آپ کا استقبال (i know lots of languages)