Kelvintaph-burgler with a little help

If you do not understand what I’m saying, you get away with it, not that it was a joke :joy::joy:

1 Like

my hero survives but can not find (Ice Yak):bowing_woman:t5::woman_shrugging:t5:

1 Like

Please learn to post your code properly.

To post your code from the game, use the </> button or it won’t format properly. When you click the </> button, the following will appear:

Please paste ALL of your code inside the triple back tick marks.

``` <— Triple back tick marks.

Paste ALL of your code in here.

``` <— Triple back tick marks.

There are many people here willing and able to help. If you use the </> button correctly, then ALL of your code should look like this:

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        hero.attack(enemy)
    else:
        hero.say("My code is formatted properly")

If ALL of your code isn’t formatted like the code above, then you’re doing it wrong and we can’t see the structure of the code to troubleshoot whether or not that is the issue. Use the </> button and help us help you. This works when sending a private message as well.

Thank you.

3 Likes

ok

hero.moveXY(12, 6)
excepE = [‘tower’]
dest = {‘x’: 78, ‘y’: 39}
done = False

def getPos(obj):
return obj.pos.x, obj.pos.y

def toPos(x, y):
return {‘x’: x, ‘y’: y}

def rushTo(xy):
if hero.isReady(“jump”):
hero.jumpTo(xy)
hero.move(xy)

def exclude(units, exceps):
return [u for u in units if u.type not in exceps]

def farthest(enemies):
farthestD = 0
for enemy in enemies:
d = hero.distanceTo(enemy)
if d > farthestD and enemy.health > 0:
farthestD = d
farthest = enemy
return farthest

def nearby(enemies, dis):
return sum([hero.distanceTo(e) < dis for e in enemies])

def selfDying(self):
if self.health < self.maxHealth / 2:
hero.command(self, “move”, {‘x’: self.pos.x - 1, ‘y’: self.pos.y})

def evade():
x, y = getPos(hero)
orbs = hero.findEnemyMissiles()
if len(orbs):
orb = hero.findNearest(orbs)
if hero.distanceTo(orb) < 3:
if y > 14:
hero.moveXY(x, y - 7)
else:
hero.moveXY(x, y + 7)

def lowHP():
friends = hero.findFriends()
lowest = 9999
dying = None
if len(friends):
for friend in friends:
hp = friend.health
if hp < friend.maxHealth / 3 and hp < lowest and hp > 0:
lowest = hp
dying = friend
return dying

def soldierAtk(soldier):
selfDying(soldier)
enemies = hero.findByType(“Ice yak”)
if not len(enemies):
enemy = soldier.findNearestEnemy()
else:
enemy = enemies[0]
if enemy:
hero.command(soldier, “attack”, enemy)
else:
hero.command(soldier, “move”, soldier.pos)

def archerAtk(archer):
enemies = hero.findByType(“Ice Yak”)
if not len(enemies):
enemy = archer.findNearestEnemy()
else:
enemy = enemies[0]
if enemy and archer.pos.x > 53 and archer.pos.y < 40:
hero.command(archer, “attack”, enemy)
elif hero.time > 6:
hero.command(archer, “move”, dest)

def riderAtk(rider):
enemies = hero.findByType(“robot-walker”)
if len(enemies):
hero.command(rider, “move”, {‘x’: enemies[0].pos.x / 2 + enemies[1].pos.x / 2,
‘y’: enemies[0].pos.y / 2 + enemies[1].pos.y / 2})

def palaAtk(pala):
selfDying(pala)
dying = lowHP()
enemies = hero.findByType(“Ice yak”)
if not len(enemies):
enemy = pala.findNearestEnemy()
else:
enemy = enemies[0]
if dying and pala.canCast(‘heal’):
hero.command(pala, “cast”, ‘heal’, dying)
else:
hero.command(pala, “move”, dest)
if pala.canCast(‘heal’) and hero.health < 2 * hero.maxHealth / 3:
hero.command(pala, “cast”, ‘heal’, hero)
if pala.pos == dest:
hero.command(pala, “shield”)

def summon(soldier):
while hero.gold >= hero.costOf(soldier):
hero.summon(soldier)

def command():
for unit in hero.findFriends():
t = unit.type
if t == ‘griffin-rider’:
riderAtk(unit)
elif t == ‘soldier’:
soldierAtk(unit)
elif t == ‘paladin’:
palaAtk(unit)
elif t == ‘archer’:
archerAtk(unit)

def atk():
if hero.gold > hero.costOf(‘griffin-rider’):
hero.summon(‘griffin-rider’)
command()
enemies = hero.findByType(“robot-walker”)
if len(enemies):
pass
else:
enemy = hero.findNearest([e for e in hero.findEnemies()if e.type not in [‘chieftain’, ‘whitch’]])
if enemy:
command()
if hero.canCast(“chain-lightning”, enemy) and hero.time > 7:
hero.cast(“chain-lightning”, enemy)
elif not len(enemies):
hero.move({‘x’: 78, ‘y’: 14})
return True

def run():
while True:
evade()
atk()

run()
1 Like

there is my code
:roll_eyes:

  • The soldiers do nothing att all

  • The archers go towards the ogre with giant blades(chieftain)

  • And the paladin passes from (Ice Yak) and also from the witch (the one with the sticks in the head) and goes directly to the cross.

1 Like

Okay, but you copied the code from here. Thus, the formatting is gone already. You have to copy it from the game.

I swear it is the same :expressionless:

1 Like

Do I have to copy it again?

1 Like

if you copied it from the game then you have some serious structural issues in your code. There are no indents and everything is aligned left. I do not believe that you could have made it this far in the game without knowing what proper structure and indents are.

You must highlight and copy the code in the game and then paste it here. It isn’t rocket science. It’s very easy. No one can help you unless we can see the structure and alignment of your code.

eeeeh is not

hero.moveXY(7 ,3)
excepE = ['tower']
dest = {'x': 78, 'y': 39}
done = False


def getPos(obj):
    return obj.pos.x, obj.pos.y


def toPos(x, y):
    return {'x': x, 'y': y}


def rushTo(xy):
    if hero.isReady("jump"):
        hero.jumpTo(xy)
    hero.move(xy)


def exclude(units, exceps):
    return [u for u in units if u.type not in exceps]


def farthest(enemies):
    farthestD = 0
    for enemy in enemies:
        d = hero.distanceTo(enemy)
        if d > farthestD and enemy.health > 0:
            farthestD = d
            farthest = enemy
    return farthest


def nearby(enemies, dis):
    return sum([hero.distanceTo(e) < dis for e in enemies])


def selfDying(self):
    if self.health < self.maxHealth / 2:
        hero.command(self, "move", {'x': self.pos.x - 1, 'y': self.pos.y})


def evade():
    x, y = getPos(hero)
    orbs = hero.findEnemyMissiles()
    if len(orbs):
        orb = hero.findNearest(orbs)
        if hero.distanceTo(orb) < 3:
            if y > 14:
                hero.moveXY(x, y - 7)
            else:
                hero.moveXY(x, y + 7)


def lowHP():
    friends = hero.findFriends()
    lowest = 9999
    dying = None
    if len(friends):
        for friend in friends:
            hp = friend.health
            if hp < friend.maxHealth / 3 and hp < lowest and hp > 0:
                lowest = hp
                dying = friend
    return dying


def soldierAtk(soldier):
    selfDying(soldier)
    enemies = hero.findByType("ogre")
    if not len(enemies):
        enemy = soldier.findNearestEnemy()
    else:
        enemy = enemies[0]
    if enemy:
        hero.command(soldier, "attack", enemy)
    else:
        hero.command(soldier, "move", soldier.pos)


def archerAtk(archer):
    enemies = hero.findByType("chieftain")
    if not len(enemies):
        enemy = archer.findNearestEnemy()
    else:
        enemy = enemies[0]
    if enemy and archer.pos.x > 53 and archer.pos.y < 40:
        hero.command(archer, "attack", enemy)
    elif hero.time > 6:
        hero.command(archer, "move", dest)


def riderAtk(rider):
    enemies = hero.findByType("robot-walker")
    if len(enemies):
        hero.command(rider, "move", {'x': enemies[0].pos.x / 2 + enemies[1].pos.x / 2,
                                     'y': enemies[0].pos.y / 2 + enemies[1].pos.y / 2})


def palaAtk(pala):
    selfDying(pala)
    dying = lowHP()
    enemies = hero.findByType("witch")
    if not len(enemies):
        enemy = pala.findNearestEnemy()
    else:
        enemy = enemies[0]
    if dying and pala.canCast('heal'):
        hero.command(pala, "cast", 'heal', dying)
    else:
        hero.command(pala, "move", dest)
    if pala.canCast('heal') and hero.health < 2 * hero.maxHealth / 3:
        hero.command(pala, "cast", 'heal', hero)
    if pala.pos == dest:
        hero.command(pala, "shield")


def summon(soldier):
    while hero.gold >= hero.costOf(soldier):
        hero.summon(soldier)


def command():
    for unit in hero.findFriends():
        t = unit.type
        if t == 'griffin-rider':
            riderAtk(unit)
        elif t == 'soldier':
            soldierAtk(unit)
        elif t == 'paladin':
            palaAtk(unit)
        elif t == 'archer':
            archerAtk(unit)


def atk():
    if hero.gold > hero.costOf('griffin-rider'):
        hero.summon('griffin-rider')
    command()

    enemies = hero.findByType("robot-walker")
    if len(enemies):
        pass
    else:
        enemy = hero.findNearest([e for e in hero.findEnemies() if e.type not in ['ice-yak', 'cow']])
        if enemy:
            command()
            if hero.canCast("chain-lightning", enemy) and hero.time > 7:
                hero.cast("chain-lightning", enemy)
        elif not len(enemies):
            hero.move({'x': 78, 'y': 14})
    return True


def run():
    while True:
        evade()
        atk()


run()
1 Like

Epic, what part about not responding to dead posts unless you need help is not clear?