Last active
July 27, 2022 14:08
-
-
Save Itamar651/df1b2c07d559bb423beda987e74aa0e5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def spareAmount(pw, my_planet): | |
my_planet = pw.get_planet(my_planet.planet_id()) | |
amount = my_planet.num_ships() | |
enemy_fleets = pw.enemy_fleets() | |
enemy_fleets = filter(lambda fleet: fleet.destination_planet() == my_planet, enemy_fleets) | |
enemy_fleets = sorted(enemy_fleets, key = lambda fleet: fleet.destination_planet() == my_planet) | |
for fleet in enemy_fleets: | |
amount = amount - fleet.num_ships() | |
return amount | |
def canWin(pw, my_planet, target,spare): | |
my_planet = pw.get_planet(my_planet.planet_id()) | |
target = pw.get_planet(target.planet_id()) | |
target_amount = target.num_ships() + target.growth_rate() * pw.distance(my_planet, target) - spare | |
enemy_fleets = pw.enemy_fleets() | |
enemy_fleets = filter(lambda fleet: fleet.destination_planet() == target, enemy_fleets) | |
my_fleets = pw.my_fleets() | |
my_fleets = filter(lambda fleet: fleet.destination_planet() == target, my_fleets) | |
for fleet in enemy_fleets: | |
target_amount += fleet.num_ships() | |
for fleet in my_fleets: | |
target_amount -= fleet.num_ships() | |
return target_amount < 0 | |
def do_turn(pw): | |
planets = pw.my_planets() | |
for my_planet in planets: | |
spare = spareAmount(pw, my_planet) | |
if spare > 0 : | |
targets = pw.neutral_planets() | |
targets.extend(pw.enemy_planets()) | |
targets = sorted(targets, key = lambda planet: planet.growth_rate(), reverse = True) | |
for target in targets: | |
if canWin(pw, my_planet, target,spare): | |
pw.issue_order(my_planet, target, spare) | |
break | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment