public class Agent : AgentBase
public const int UnownedPlanetOwnerId = -1;
public Agent() : base("The Empire", -1){}
public override void Update(StatusResult gs)
Console.WriteLine($"[{DateTime.Now.ToShortTimeString()}]Current Turn: {gs.CurrentTurn}");
Console.WriteLine($"Owned Planet Id's: {string.Join(", ", gs.Planets.Where(p => p.OwnerId == MyId).Select(p => p.Id))}");
Planet startingPlanet = null;
foreach (var planet in gs.Planets)
Console.WriteLine(planet.OwnerId);
gs.Planets.Where(p => p.OwnerId != MyId)
.OrderBy(p => p.NumberOfShips)
.ThenByDescending(p => p.GrowthRate);
if (!targetPlanets.Any()) return;
Planet targetPlanet = new Planet();
foreach (var planet in gs.Planets.Where(p => p.OwnerId == MyId))
targetPlanet = targetPlanets.OrderBy(p => p.Position.Distance(planet.Position)).First();
Console.WriteLine(string.Format("Targeting planet {0} which has {1} ships", targetPlanet.Id, targetPlanet.NumberOfShips));
var ships = (int)Math.Floor(planet.NumberOfShips / 2.0);
Console.WriteLine(string.Format("Sending {0} ships from {1}", ships, planet.Id));
SendFleet(planet.Id, targetPlanet.Id, ships);