예제 #1
0
    static void Main(string[] args)
    {
        string[] inputs;
        GPS.InitGPS();
        Target.Area = "default";
        // game loop
        while (true)
        {
            inputs = Console.ReadLine().Split(' ');
            int x = int.Parse(inputs[0]);
            Player_x = x;
            int y = int.Parse(inputs[1]);
            Player_y = y;
            int           humanCount = int.Parse(Console.ReadLine());
            List <Human>  humans     = new List <Human>();
            List <Zombie> zombies    = new List <Zombie>();

            for (int i = 0; i < humanCount; i++)
            {
                inputs = Console.ReadLine().Split(' ');
                int humanId = int.Parse(inputs[0]);
                int humanX  = int.Parse(inputs[1]);
                int humanY  = int.Parse(inputs[2]);
                humans.Add(new Human(humanId, humanX, humanY));
            }
            int zombieCount = int.Parse(Console.ReadLine());
            for (int i = 0; i < zombieCount; i++)
            {
                inputs = Console.ReadLine().Split(' ');
                int zombieId    = int.Parse(inputs[0]);
                int zombieX     = int.Parse(inputs[1]);
                int zombieY     = int.Parse(inputs[2]);
                int zombieXNext = int.Parse(inputs[3]);
                int zombieYNext = int.Parse(inputs[4]);
                zombies.Add(new Zombie(zombieId, zombieX, zombieY, zombieXNext, zombieYNext));
            }

            // Write an action using Console.WriteLine()
            // To debug: Console.Error.WriteLine("Debug messages...");

            foreach (var human in humans)
            {
                human.DistanceOfClosestZombie = human.GetDistanceOfClosestZombie(zombies);
                human.Area = GPS.GetArea(human.X, human.Y);
            }

            humans = humans.OrderByDescending(i => i.DistanceOfClosestZombie).ToList();

            Human target = GetHumanInMostPopulatedArea(humans, zombies);
            if (target.Area == "none")
            {
                target = humans[0];
            }

            /*if(Target.Area == "default")
             * {
             *  Target = target;
             * }*/

            Human closest = GetClosestHumanToPlayer(humans);

            if (closest.InDanger(zombies))
            {
                target = closest;
            }


            Console.WriteLine(target.X + " " + target.Y); // Your destination coordinates
        }
    }