[Solved] Help With Weakest Quickest

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 :wink: 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. :wink:

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!!!