Hi,
i’m having a lot of trouble with levels that uses enemy.health or coin.value, Can someone please explain why this is happening?
,My Code:
# Defeat shamans to survive.
# The function find the weakest enemy.
def findWeakestEnemy():
enemies = hero.findEnemies()
weakest = None
leastHealth = 99999
enemyIndex = 0
enemies = hero.findEnemies()
# Loop through enemies:
while enemyIndex < len(enemies):
enemy = enemies[enemyIndex]
# If an enemy's health is less than leastHealth:
if enemy.health < leastHealth:
# Make it the weakest
enemy = weakest
# and set leastHealth to its health.
leastHealth = enemy.health
enemyIndex += 1
return weakest
while True:
# Find the weakest enemy with the function:
weakestShaman = findWeakestEnemy()
# If the weakest enemy here:
if weakestShaman:
# Attack it!
hero.attack(weakestShaman)
Do weakest=enemy
And weakestShaman=weakest
Since there is no such thing as find weakest enemy
1 Like
Thank you, it worked by replacing enemy = weakest
with
weakest = enemy
But i didn’t Understand why.
Since the other way, it means that the weakest is enemy, but not all enemies are weakest so in the other way the current enemy is the weakest
1 Like
I’ve never seen this level before. Is this a new release?
Nope, its a desert level, a pretty old one
Okay cuz I’ve never seen the level in the desert before. When I go to desert it never had an arrow pointing at the level until now.
I thought I finished all non-subscriber code combat levels, until today oof
RU a sub or not? Just curious.
No I’m not a sub :C
Yeah I know it’s sad. But subscribing wouldn’t let me learn new concepts which is why I didn’t subscribe
Hi. i need help. my hero gets killed really fast. what is wrong? please help.
# Defeat shamans to survive.
# The function find the weakest enemy.
def findWeakestEnemy():
enemies = hero.findEnemies()
weakest = None
leastHealth = 99999
enemyIndex = 0
# Loop through ene
while enemyIndex < len(enemies):
enemy = enemies[enemyIndex]
# If an enemy's health is less than leastHealth:
if enemy.health < leastHealth:
# Make it the weakest
weakest = enemy
# and set leastHealth to its health.
leastHealth = enemy.health
enemyIndex += 1
return weakest
while True:
# Find the weakest enemy with the function:
weakest = findWeakestEnemy()
# If the weakest enemy here:
if weakest:
if hero.canCast("invisibility", hero):
hero.cast("invisibility", hero)
if hero.canCast("chain-lightning", weakest):
hero.cast("chain-lightning", weakest)
else:
hero.attack(weakest)
pass
Remove the invisibility and the chain lightning and just use attack. Also can you take a screenshot of your equipment please @Anastasia?
My character doesn’t follow the code and goes and always attacks in the order of bottom first, then right, then left, then up. There is nothing I can do to stop it!
first of all, you don’t have the equipment to cast invisibility, so that shouldn’t even be there. Second, your code is close so the statement, “There is nothing I can do to stop it” is false. The problem is a structural issue in your function. The incremental statement, enemyIndex += 1
needs to be inside the while
loop, but not inside the if enemy.health < leastHealth:
conditional. Tab it back. Lastly, the return
statement needs to be inside the function, but not inside while
loop.
Make these corrections and the level will work just fine.
And your equipment should allow the hero to kill the shaman just fine, without the worry of having to cast invisibility and other spells.
I liked the use of the chain lightening here. It allows the hero to kill a shaman without moving all the way to its position. This is helpful here because she’s using Okar, who is really slow.
Thankyou So much, guys!!!