# Определи, с какого направления движутся огры.
while True:
enemy = hero.findNearestEnemy()
if enemy:
# Слева: `enemy.pos.x` меньше, чем `hero.pos.x`
isLeft = hero.pos.x > enemy.pos.x
# Сверху: `enemy.pos.y` больше, чем `hero.pos.y`
isAbove = hero.pos.y < enemy.pos.y
# Справа: `enemy.pos.x` больше, чем `hero.pos.x`
isRight = hero.pos.x < enemy.pos.x
# Снизу: `enemy.pos.y` меньше, чем `hero.pos.y`
isAbove = hero.pos.y > enemy.pos.y
# Если враг сверху и слева:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isLeft and isAbove:
hero.buildXY("fire-trap", 20, 51)
# Если враг сверху и справа:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isRight and isBelow:
hero.buildXY("fire-trap", 60, 51)
# Если враг снизу и слева:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isLeft and isAbove:
hero.buildXY("fire-trap", 20, 17)
# Если враг снизу и справа:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isRight and isAbove:
hero.buildXY("fire-trap",60, 17)
hero.moveXY(40, 34)
else:
hero.moveXY(40, 34)
О, у меня тут все в условии напутано. Я понимаю где приблизительно ошибка и о чем вы говорите. Но у меня дважды написано isAbove. Вы можете прислать в каком порядке должны идти слова перед = . У меня в условии написано так
1 Слева В условии написано isLeft
2 Сверху В условии написано isAbove
3 Справа isRight
4 Снизу isBelow
Какие последние два значения перед = ? Если я так напишу как указал выше, код не работает. Что не так?
``Сейчас мой код выглядит так. герой стоит на месте. Ошибок ни каких не выдает. Не понимаю что не так.
`
Определи, с какого направления движутся огры.
while True:
enemy = hero.findNearestEnemy()
if enemy:
# Слева: enemy.pos.x меньше, чем hero.pos.x
isLeft = hero.pos.x > enemy.pos.x
# Сверху: enemy.pos.y больше, чем hero.pos.y
isBelow = hero.pos.y < enemy.pos.y
# Справа: enemy.pos.x больше, чем hero.pos.x
isRight = hero.pos.x < enemy.pos.x
# Снизу: enemy.pos.y меньше, чем hero.pos.y
isAbove = hero.pos.y > enemy.pos.y
# Если враг сверху и слева:
# Построй (buildXY()) ловушку (“fire-trap”) на отметке X.
if isLeft and isAbove:
hero.buildXY(“fire-trap”, 20, 51)
# Если враг сверху и справа:
# Построй (buildXY()) ловушку (“fire-trap”) на отметке X.
if isRight and isBelow:
hero.buildXY(“fire-trap”, 60, 51)
# Если враг снизу и слева:
# Построй (buildXY()) ловушку (“fire-trap”) на отметке X.
if isLeft and isAbove:
hero.buildXY(“fire-trap”, 20, 17)
# Если враг снизу и справа:
# Построй (buildXY()) ловушку (“fire-trap”) на отметке X.
if isRight and isAbove:
hero.buildXY(“fire-trap”,60, 17)
hero.moveXY(40, 34)
else:
hero.moveXY(40, 34)
Так лучше, но герой ставит ловушки в порядке не обращая внимание на врагов и его убивают.
# Определи, с какого направления движутся огры.
while True:
enemy = hero.findNearestEnemy()
if enemy:
# Слева: `enemy.pos.x` меньше, чем `hero.pos.x`
isLeft = hero.pos.x > enemy.pos.x
# Сверху: `enemy.pos.y` больше, чем `hero.pos.y`
isAbove = hero.pos.y < enemy.pos.y
# Справа: `enemy.pos.x` больше, чем `hero.pos.x`
isRight = hero.pos.x < enemy.pos.x
# Снизу: `enemy.pos.y` меньше, чем `hero.pos.y`
isBelow = hero.pos.y > enemy.pos.y
# Если враг сверху и слева:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isLeft and isAbove:
hero.buildXY("fire-trap", 20, 51)
# Если враг сверху и справа:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isRight and isBelow:
hero.buildXY("fire-trap", 60, 51)
# Если враг снизу и слева:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isLeft and isAbove:
hero.buildXY("fire-trap", 20, 17)
# Если враг снизу и справа:
# Построй (`buildXY()`) ловушку ("fire-trap") на отметке X.
if isRight and isAbove:
hero.buildXY("fire-trap",60, 17)
hero.moveXY(40, 34)
else:
hero.moveXY(40, 34)