def pickTargetTerminator(droid,AI): targetDroids = findDroids(droid.x,droid.y,2,1-AI.playerID,AI.droids) if (len(targetDroids) > 0): for targetDroid in targetDroids: if targetDroid.variant == TURRET: return targetDroid.x,targetDroid.y for targetDroid in targetDroids: if targetDroid.variant == HANGAR: return targetDroid.x,targetDroid.y for targetDroid in targetDroids: if targetDroid.variant == HACKER: return targetDroid.x,targetDroid.y lowest = targetDroids[0] lowestrating = targetDroids[0].armor*targetDroids[0].healthLeft for targetDroid in targetDroids: if lowestrating > targetDroid.armor*targetDroid.healthLeft: lowest = targetDroid lowestrating = targetDroid.armor*targetDroid.healthLeft return lowest.x,lowest.y else: targetDroids = findDroids(droid.x,droid.y,AI.getMapHeight()+AI.getMapWidth(),1-AI.playerID,AI.droids) if (len(targetDroids) > 0): for targetDroid in targetDroids: if targetDroid.variant == HANGAR: return targetDroid.x,targetDroid.y return targetDroids[0].x,targetDroids[0].y else: #return droid.x+ 4*(-2*AI.playerID+1),droid.y return AI.getMapWidth()/2, AI.getMapHeight()/2
def pickTargetClaw(droid,AI): targetDroids = findDroids(droid.x,droid.y,5,1-AI.playerID,AI.droids) if (len(targetDroids) > 0): for targetDroid in targetDroids: if targetDroid.variant == ARCHER: return targetDroid.x,targetDroid.y return targetDroids[0].x,targetDroids[0].y else: targetDroids = findDroids(droid.x,droid.y,AI.getMapHeight()+AI.getMapWidth(),1-AI.playerID,AI.droids) if (len(targetDroids) > 0): return targetDroids[0].x,targetDroids[0].y else: #return droid.x+ 4*(-2*AI.playerID+1),droid.y return AI.getMapWidth()/2, AI.getMapHeight()/2
def pickTargetRepair(droid,AI): possibleDroids = findDroids(droid.x,droid.y,4,AI.playerID,AI.droids) for targetDroid in possibleDroids: if targetDroid.armor != targetDroid.maxArmor and targetDroid.variant == TURRET: return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.armor != targetDroid.maxArmor and targetDroid.variant == TERMINATOR: return targetDroid.x,targetDroid.y #for targetDroid in possibleDroids: # if targetDroid.armor != targetDroid.maxArmor: # return targetDroid.x,targetDroid.y possibleDroids = findDroids(droid.x,droid.y,AI.getMapHeight()+AI.getMapWidth(),AI.playerID,AI.droids) for targetDroid in possibleDroids: if targetDroid.armor != targetDroid.maxArmor and targetDroid.variant == TURRET: return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.armor != targetDroid.maxArmor and targetDroid.variant == TERMINATOR: return targetDroid.x,targetDroid.y #for targetDroid in possibleDroids: # if targetDroid.armor != targetDroid.maxArmor: # return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.armor != targetDroid.maxArmor: return targetDroid.x,targetDroid.y return -1,-1
def pickTargetArcher(droid,AI): targetDroids = findDroids(droid.x,droid.y,5,1-AI.playerID,AI.droids) if (len(targetDroids) > 0): for targetDroid in targetDroids: if targetDroid.variant == HACKER: return targetDroid.x,targetDroid.y lowest = targetDroids[0] lowestrating = targetDroids[0].armor*targetDroids[0].healthLeft for targetDroid in targetDroids: if lowestrating > targetDroid.armor*targetDroid.healthLeft: lowest = targetDroid lowestrating = targetDroid.armor*targetDroid.healthLeft return lowest.x,lowest.y else: targetDroids = findDroids(droid.x,droid.y,AI.getMapHeight()+AI.getMapWidth(),1-AI.playerID,AI.droids) # if (len(targetDroids) > 0): # for targetDroid in targetDroids: # if (targetDroid.variant == TERMINATOR) and ((droid.owner == 0 and targetDroid.x > droid.x) or (droid.owner == 1 and targetDroid.x < droid.x)): # return targetDroid.x + 2*(2*AI.playerID-1),targetDroid.y # return AI.getMapWidth()/2, AI.getMapHeight()/2 if (len(targetDroids) > 0): return targetDroids[0].x,targetDroids[0].y else: return AI.getMapWidth()/2, AI.getMapHeight()/2
def pickTargetHacker(droid,AI): possibleDroids = findDroids(droid.x,droid.y,4,1-AI.playerID,AI.droids) for targetDroid in possibleDroids: if targetDroid.hackedTurnsLeft == 0 and targetDroid.variant == CLAW: return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.hackedTurnsLeft == 0 and targetDroid.variant == TERMINATOR: return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.hackedTurnsLeft == 0 and (targetDroid.variant != HANGAR and targetDroid.variant != WALL and targetDroid.variant != TURRET): return targetDroid.x,targetDroid.y possibleDroids = findDroids(droid.x,droid.y,AI.getMapHeight()+AI.getMapWidth(),1-AI.playerID,AI.droids) for targetDroid in possibleDroids: if targetDroid.hackedTurnsLeft == 0 and targetDroid.variant == CLAW: return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.hackedTurnsLeft == 0 and targetDroid.variant == TERMINATOR: return targetDroid.x,targetDroid.y for targetDroid in possibleDroids: if targetDroid.hackedTurnsLeft == 0 and (targetDroid.variant != HANGAR and targetDroid.variant != WALL and targetDroid.variant != TURRET): return targetDroid.x,targetDroid.y return -1,-1