コード例 #1
0
        static void Main(string[] args)
        {
            string command;

            HashSet <Trainer> trainers = new HashSet <Trainer>();

            while ((command = Console.ReadLine()) != "Tournament")
            {
                string[] elements = command
                                    .Split(" ", StringSplitOptions.RemoveEmptyEntries);

                string trainerName    = elements[0];
                string pokemonName    = elements[1];
                string pokemonElement = elements[2];
                int    pokemonHealth  = int.Parse(elements[3]);

                Pokemon currentPokemon = new Pokemon
                {
                    Name    = pokemonName,
                    Element = pokemonElement,
                    Health  = pokemonHealth
                };

                Trainer currentTrainer = new Trainer
                {
                    Name = trainerName
                };

                bool trainerExists = false;

                foreach (var trainer in trainers)
                {
                    if (trainer.Name == currentTrainer.Name)
                    {
                        trainer.AddPokemons(currentPokemon);
                        trainerExists = true;
                        break;
                    }
                }

                if (!trainerExists)
                {
                    trainers.Add(currentTrainer);
                    currentTrainer.AddPokemons(currentPokemon);
                }
            }

            string command2;

            while ((command2 = Console.ReadLine()) != "End")
            {
                switch (command2)
                {
                case "Fire":
                    ApplyCommand2(trainers, command2);
                    break;

                case "Water":
                    ApplyCommand2(trainers, command2);
                    break;

                case "Electricity":
                    ApplyCommand2(trainers, command2);
                    break;
                }
            }

            List <Trainer> sortedTrainers = trainers
                                            .OrderByDescending(x => x.NumberOfBadges)
                                            .ToList();

            foreach (var trainer in sortedTrainers)
            {
                Console.WriteLine(trainer);
            }
        }
コード例 #2
0
        static void Main()
        {
            var trainers = new List <Trainer>();

            while (true)
            {
                var command = Console.ReadLine();

                if (command == "Tournament")
                {
                    break;
                }

                var args           = command.Split(" ", StringSplitOptions.RemoveEmptyEntries);
                var trainerName    = args[0];
                var pokemonName    = args[1];
                var pokemonElement = args[2];
                var pokemonHealth  = int.Parse(args[3]);

                var trainer = new Trainer(trainerName);
                var pokemon = new Pokemon(pokemonName, pokemonElement, pokemonHealth);

                var found = trainers.Find(x => x.Name == trainer.Name);

                if (found != null)
                {
                    found.Pokemons.Add(pokemon);
                }
                else
                {
                    trainer.Pokemons.Add(pokemon);
                    trainers.Add(trainer);
                }
            }

            while (true)
            {
                var command = Console.ReadLine();

                if (command == "End")
                {
                    break;
                }
                string element = ProccesElement(command);

                foreach (var trainer in trainers)
                {
                    if (trainer.Pokemons.Any(x => x.Element == element))
                    {
                        trainer.Badges++;
                    }
                    else
                    {
                        for (int i = 0; i < trainer.Pokemons.Count; i++)
                        {
                            var pokemon = trainer.Pokemons[i];

                            pokemon.Health -= 10;

                            if (pokemon.Health <= 0)
                            {
                                trainer.Pokemons.Remove(pokemon);
                                i--;
                            }
                        }
                    }
                }
            }

            var result = trainers.OrderByDescending(x => x.Badges).ToList();

            foreach (var trainer in result)
            {
                Console.WriteLine(trainer.ToString());
            }
        }