static void Main(string[] args) { Supervisor _supervisor = new Supervisor(); _supervisor.BuildQueue.Add(new BuildItem(SiteType.Barrack, CreepType.Knight)); _supervisor.BuildQueue.Add(new BuildItem(SiteType.Tower, CreepType.None)); _supervisor.BuildQueue.Add(new BuildItem(SiteType.Barrack, CreepType.Archer)); _supervisor.BuildQueue.Add(new BuildItem(SiteType.Barrack, CreepType.Giant)); _supervisor.BuildQueue.Add(new BuildItem(SiteType.Tower, CreepType.None)); string[] inputs; int numSites = int.Parse(Console.ReadLine()); for (int i = 0; i < numSites; i++) { inputs = Console.ReadLine().Split(' '); int siteId = int.Parse(inputs[0]); int x = int.Parse(inputs[1]); int y = int.Parse(inputs[2]); int radius = int.Parse(inputs[3]); _supervisor.Sites.Add(new Site(siteId, x, y, radius)); } // game loop while (true) { inputs = Console.ReadLine().Split(' '); int gold = int.Parse(inputs[0]); int touchedSite = int.Parse(inputs[1]); // -1 if none _supervisor.Gold = gold; _supervisor.TouchedSite = touchedSite; for (int i = 0; i < numSites; i++) { inputs = Console.ReadLine().Split(' '); int siteId = int.Parse(inputs[0]); int ignore1 = int.Parse(inputs[1]); // used in future leagues int ignore2 = int.Parse(inputs[2]); // used in future leagues int structureType = int.Parse(inputs[3]); // -1 = No structure, 2 = Barracks int owner = int.Parse(inputs[4]); // -1 = No structure, 0 = Friendly, 1 = Enemy int param1 = int.Parse(inputs[5]); int param2 = int.Parse(inputs[6]); (_supervisor.Sites.Where(x => x.Id == siteId).ToList())[0].Update(structureType, owner, param1, param2); } _supervisor.UpdateSiteNums(); int numUnits = int.Parse(Console.ReadLine()); for (int i = 0; i < numUnits; i++) { inputs = Console.ReadLine().Split(' '); int x = int.Parse(inputs[0]); int y = int.Parse(inputs[1]); int owner = int.Parse(inputs[2]); int unitType = int.Parse(inputs[3]); // -1 = QUEEN, 0 = KNIGHT, 1 = ARCHER int health = int.Parse(inputs[4]); _supervisor.Units.Add(new Unit(unitType, owner, health, x, y)); } // Write an action using Console.WriteLine() // To debug: Console.Error.WriteLine("Debug messages..."); // First line: A valid queen action // Second line: A set of training instructions Console.WriteLine(_supervisor.Action()); Console.WriteLine(_supervisor.Train()); _supervisor.Time++; } }