Library tactician in python

can someone help me figure out what my code is missing because there are no errors it just keeps saying my goals are incomplete?

def commandSoldier(soldier, soldierIndex, numSoldiers):
angle = Math.PI * 2 * soldierIndex / numSoldiers
defendPos = {“x”: 41, “y”: 40}
defendPos.x += 10 * Math.cos(angle)
defendPos.y += 10 * Math.sin(angle)
hero.command(soldier, “defend”, defendPos);
def findStrongestTarget():
mostHealth = 0
bestTarget = None
enemies = hero.findEnemies()
enemyIndex = 0
for enemy in hero.findEnemies:
if enemy.health > mostHealth:
bestTarget = enemy
mostHealth = enemy.Health
bestTarget = enemy
if bestTarget and bestTarget.health > 15:
return bestTarget
else:
return none
def commandArcher(archer):
nearest = archer.findNearestEnemy
if archerTarget:
hero.command(archer, “attack”, archerTarget)
elif nearest:
hero.command(archer, “attack”, nearest)
archerTarget = None
while True:
if hero.gold > hero.costOf(“soldier”):
hero.summon(“soldier”)
if not archerTarget or archerTarget.health <= 0:
archerTarget = findStrongestTarget()
friends = hero.findFriends()
soldiers = hero.findByType(“soldier”)
archers = hero.findByType(“archers”)
for i, soldier in enumerate(soldiers):
commandSoldier(soldier, i, len(soldiers))
for i in range(len(archers)):
archer = archers[i]
commandArcher(archer)

1 Like

hi can you format your code by pressing this button </>

1 Like

the enter button you mean?

1 Like

what happens when you run your code.

1 Like

it keeps saying goals: incomplete and there are no errors one soldier just keeps dying at the beginning

1 Like

Please format your code like milton said, press

this button

1 Like
this.commandSoldier = function(soldier, soldierIndex, numSoldiers) {
    var angle = Math.PI * 2 * soldierIndex / numSoldiers;
    var defendPos = {x: 41, y: 40};
    defendPos.x += 10 * Math.cos(angle);
    defendPos.y += 10 * Math.sin(angle);
    this.command(soldier, "defend", defendPos);
};
// Найдите самую крепкую цель (больше всего здоровья)
// Эта функция что-то возвращает! Когда Вы вызываете функцию, то получаете от неё какое-то значение.
this.findStrongestTarget = function() {
    var mostHealth = 0;
    var bestTarget = null;
    var enemies = this.findEnemies();
    // Определите, у какого из врагов больше всего уровень здоровья и направьте метод bestTarget на этого врага.
    for (var i=0; i < enemies.length; i++) {
        if (enemies[i].health > mostHealth) {
            bestTarget = enemies[i];
            mostHealth = enemies[i].health;
        }
    }
    // Концентрируйте огонь лучников на одного противника только в том случае, когда нападает большой огр.
    if (bestTarget && bestTarget.health > 15) {
        return bestTarget;
    } else {
        return null;
    }
};


// Если у врага, определенного как strongestTarget больше 15 единиц здоровья, атакуйте его. Иначе, атакуйте ближайшего врага.
this.commandArcher = function(archer) {
    var nearest = archer.findNearestEnemy();
    if(archerTarget) {
        this.command(archer, "attack", archerTarget);
    } else if(nearest) {
        this.command(archer, "attack", nearest);
    }
};

var archerTarget = null;
while(true) {
    // Если враг, определенный как archerTarget мертв или не существует, найдите нового.
    if(!archerTarget || archerTarget.health <= 0) {
        // Установите целью (или "аргументом") функции archerTarget, значение, возвращенное функцией findStrongestTarget().
        archerTarget = this.findStrongestTarget();
    }
    var friends = this.findFriends();
    var soldiers = this.findByType("soldier");
    for(var i=0; i < soldiers.length; i++) {
        this.commandSoldier(soldiers[i], i, soldiers.length);
    }
    // Используйте функцию commandArcher() для управления своими лучниками.
    var archers = this.findByType("archer");
    for(i=0; i < archers.length; i++) 
        this.commandArcher(archers[i], i, archers.length);
}
    heres my code but the soldier keeps dying in the beginning
3 Likes

You copied code. Do you speak russian @Chris1

1 Like

Your original code was Python not JS

1 Like

no but ive tried finding one in english but all i can find is russian

1 Like

Try writing your own code then we will help.

1 Like

We can’t help you if you can’t write your own code

2 Likes