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