Монетные крошки

Не могу пройти уровень вот мой код

while True:
    # Найди ближайший предмет.
    item = hero.findNearestItem()
    if item:
        # Сохраняет позицию предмета в переменную.
        itemPosition = item.pos
        # Помести координаты X и Y предмета в переменные.
        itemX = itemPosition.x
        itemY = itemPosition.y
        # Теперь используй `moveXY`, чтобы двигаться на `itemX` и `itemY`:
        hero.moveXY(coin8, coin10)
        hero.moveXY(coin8, coin10)
        hero.moveXY(coin24, coin10)
        hero.moveXY(coin40, coin10)
        hero.moveXY(coin56, coin10)
        hero.moveXY(coin56, coin34)
        hero.moveXY(coin72, coin33)
        hero.moveXY(coin72, coin58)
1 Like

coin8 и coin10 и тд - не нужны.
Как и написано, # Теперь используй moveXY, чтобы двигаться на itemX и itemY

Я написал код # Двигайся по следам монет к красной отметке X у выхода.

while True:
# Найди ближайший предмет.
item = hero.findNearestItem()
if item:
# Сохраняет позицию предмета в переменную.
itemPosition = item.pos
# Помести координаты X и Y предмета в переменные.
itemX = itemPosition.x
itemY = itemPosition.y
# Теперь используй moveXY, чтобы двигаться на itemX и itemY:
hero.moveXY(8, 33)
hero.moveXY(8, 10)
hero.moveXY(24, 10)
hero.moveXY(40, 10)
hero.moveXY(56, 10)
hero.moveXY(56, 33)
hero.moveXY(72, 33)
hero.moveXY(72, 57)

Все отлично ,уровень пройден ,цели достигнуты,а потом как выводит на экран завершить так там ловушки и не на том месте монеты находятся

1 Like

1 Like

Вообщем все верно,код мой правильный после того как подсказали написать!!!

Просто нужно еще раз нажать “завершить” и картинка та же будет ,где я указывал свой код.
Обращаю внимание разработчиков на этот баг, исправьте.

1 Like

Ваш код правильный для частного случая. Получилось, что Вы подгоняли условия задачи под решение вместо того, чтобы решать задачу когда условия меняются. Грубо говоря, у Вас есть игральная кость. Каждый бросок программа должна определить, сколько очков выпало. Вместо того, чтобы сделать переменную, Ваш код каждый раз говорит “6”. И Вы ждёте, когда на костяшке выпадет 6, вместо того, чтобы каждый раз отвечать именно то число, которое выпало.
Даже на загрузке уровня указано, что лабиринт - рандомный.

Там 5 рабочих строчек кода достаточно. С использованием переменных. В этом их выгода)

1 Like

Непонятно с чего вы взяли,что я подгонял код.Я решил данную задачу исходя из ранее решенных уровней,странно ждать от меня творческого процесса и кучи вариантов кода от начинающего программиста .Значит настолько "информативны " советы в игре!

1 Like

Ну, я так вообще не пограммист, даже не начинающий; так, мимо проходил) Геймер неплохой, а программист - увы…

Но это всё шелуха. Концептульно важен простой вопрос - хотите ли Вы какой-то помощи или нет.

Правила игры и форума запрещают давать правильные решения другим игрокам - это противоречит самой сути сайта. Но можно давать намёки и советы. Я дал уже 4-5.

Я написал не совсем так) Если бы Вы подгоняли код под задачу, то это было бы именно то, что нужно. А в решении получилось наоборот.

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

Я лично не ожидаю от Вас ничего) Наоборот, я могу предложить помощь в данной ситуации. Вы не разобрались в переменных, и в последующих уровнях это даст о себе знать. Собственно, даже на этом уровне, если бы лабиринт был не 3Х5, а хотя бы 5Х7 - жать на “завершить” пришлось бы намного больше раз.

согласен совсем …

1 Like

В инструкции
#Теперь используй moveXY, чтобы двигаться на itemX и itemY
дан метод hero.moveXY(x, y).В нём x и y могут быть жёстко указанными цифрами (как в Вашем решении), а могут быть переменными, которые указывают в данном случае на координаты монеты и передаются в метод “извне” и будут актуальны, даже если изменяются. Тогда строка hero.moveXY нужна только одна, ведь код зациклен Так что остаётся только поставить в метод moveXY переменные itemX и itemY.

1 Like