Exemplo n.º 1
0
        static void Main(string[] args)
        {
            string input = Console.ReadLine();

            Dictionary <string, Trainer> trainers = new Dictionary <string, Trainer>();

            while (input != "Tournament")
            {
                string[] tokens = input.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                string trainerName = tokens[0];

                Trainer trainer = new Trainer(trainerName);

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

                Pokemon pokemon = new Pokemon(pokemonName, pokemonElement, pokemonHealth);

                if (!trainers.Keys.Contains(trainerName))
                {
                    trainer.AddPokemon(pokemon);
                    trainers.Add(trainerName, trainer);
                }
                else
                {
                    trainers[trainerName].AddPokemon(pokemon);
                }

                input = Console.ReadLine();
            }

            string tournamentInput = Console.ReadLine();

            while (tournamentInput != "End")
            {
                foreach (var trainer in trainers.Values)
                {
                    trainer.CheckPokemon(tournamentInput);
                }


                tournamentInput = Console.ReadLine();
            }

            foreach (var trainer in trainers.Values.OrderByDescending(t => t.NumberOfBadges))
            {
                Console.WriteLine(trainer);
            }
        }
Exemplo n.º 2
0
        private static void Main(string[] args)
        {
            List <Trainer> trainers = new List <Trainer>();

            string lines;

            while ((lines = Console.ReadLine()) != "Tournament")
            {
                string[] tokens = lines.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

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

                if (trainers.Any(t => t.Name == trainerName) == false)
                {
                    Trainer trainerInfo = new Trainer(trainerName);
                    trainers.Add(trainerInfo);
                }

                Trainer trainer     = trainers.First(t => t.Name == trainerName);
                Pokemon pokemonInfo = new Pokemon(pokemonName, pokemonElement, pokemonHealth);
                trainer.AddPokemon(pokemonInfo);
            }

            while ((lines = Console.ReadLine()) != "End")
            {
                foreach (var trainer in trainers)
                {
                    string element = lines;
                    if (trainer.Pokemons.Any(p => p.Element == element))
                    {
                        trainer.IncreaseBadges();
                    }
                    else
                    {
                        trainer.ReducePokemonsHealth();
                        trainer.RemoveDead();
                    }
                }
            }

            foreach (var trainer in trainers.OrderByDescending(t => t.Badges))
            {
                Console.WriteLine(trainer);
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            List <Trainer> trainers = new List <Trainer>();
            string         command;

            while ((command = Console.ReadLine()) != "Tournament")
            {
                var tokens = command.Split(' ', StringSplitOptions.RemoveEmptyEntries);

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

                if (!trainers.Any(t => t.Name == trainerName))
                {
                    trainers.Add(new Trainer(trainerName));
                }

                Trainer trainer = trainers.First(t => t.Name == trainerName);

                trainer.AddPokemon(new Pokemon(pokemonName, pokemonElement, pokemonHealth));
            }

            while ((command = Console.ReadLine()) != "End")
            {
                foreach (var trainer in trainers)
                {
                    if (trainer.Pokemons.Any(p => p.Element == command))
                    {
                        trainer.IncreaseBadges();
                    }
                    else
                    {
                        trainer.ReducePokemonsHealth();
                        trainer.RemoveDead();
                    }
                }
            }

            trainers
            .OrderByDescending(t => t.Badges)
            .ToList()
            .ForEach(Console.WriteLine);
        }
Exemplo n.º 4
0
        static void Main()
        {
            List <Trainer> Trainers = new List <Trainer>();

            string[] input = { "" };

            while (input[0] != "Tournament")
            {
                input = Console.ReadLine().Split().ToArray();
                if (input[0] == "Tournament")
                {
                    continue;
                }
                switch (input.Length)
                {
                case 1:
                    if (input[0] == "Tournament")
                    {
                        continue;
                    }
                    break;

                case 4:
                {
                    if (input[0] == null)
                    {
                        Console.WriteLine("Trainer Name cannot be empty.");
                        break;
                    }
                    if (input[1] == null)
                    {
                        Console.WriteLine("Pokemon Name cannot be empty.");
                        break;
                    }
                    if (input[2] == null)
                    {
                        Console.WriteLine("Pokemon Power cannot be empty.");
                        break;
                    }
                    if (input[3] == null || Convert.ToInt32(input[3]) == 0)
                    {
                        Console.WriteLine("Pokemon Health cannot be zero.");
                        break;
                    }
                    var     TrainerName     = input[0];
                    Trainer selectedTrainer = null;
                    if (Trainers.Any())
                    {
                        selectedTrainer = Trainers.FirstOrDefault(x => x != null && x.Name != null && x.Name == TrainerName);
                    }
                    var Pokemon = new Pokemon(input[1], input[2], int.Parse(input[3]));
                    if (selectedTrainer == null)
                    {
                        Trainers.Add(new Trainer(TrainerName, 0, new Pokemon[] { Pokemon }));
                    }
                    else
                    {
                        if (!selectedTrainer.GetPokemons.Any(x => x.Name == Pokemon.Name))
                        {
                            selectedTrainer.AddPokemon(Pokemon);
                        }
                    }
                    break;
                }
                }
            }

            Console.WriteLine(new string('=', 50));

            int Fire = 0, Water = 0, Electricity = 0;

            do
            {
                input = Console.ReadLine().Split().ToArray();
                switch (input[0])
                {
                case "Fire":
                    Fire++;
                    break;

                case "Water":
                    Water++;
                    break;

                case "Electricity":
                    Electricity++;
                    break;

                case "End":
                    continue;

                default:
                    Console.WriteLine("Choose between: Fire | Water | Electricity");
                    break;
                }
            } while (input[0] != "End");

            Console.WriteLine(new string('=', 50));
            Console.WriteLine("Powers in Favor of the Tournament");
            Console.WriteLine($"Fire ({Fire}) | Water ({Water}) | Electricity ({Electricity})");
            Console.WriteLine(new string('=', 50));
            Console.WriteLine("Battle Log");
            Console.WriteLine(new string('-', 25));

            if (Fire > 0)
            {
                foreach (var trainer in Trainers.Where(x => x.GetPokemons.Any(y => y.Element == "Fire")))
                {
                    trainer.Badges += Fire;
                }
                foreach (var trainer in Trainers.Where(x => !x.GetPokemons.Any(y => y.Element == "Fire")))
                {
                    for (int i = 0; i < trainer.GetPokemons.Count(); i++)
                    {
                        var _tempPokemon = trainer.GetPokemons[i];
                        if (_tempPokemon.Health - 10 * Fire <= 0)
                        {
                            Console.WriteLine($"{Trainers.FirstOrDefault(x => x.GetPokemons.Any(y => y.Name == _tempPokemon.Name)).Name} ({_tempPokemon.Name}) died");
                        }
                        else
                        {
                            Console.WriteLine($"{Trainers.FirstOrDefault(x => x.GetPokemons.Any(y => y.Name == _tempPokemon.Name)).Name} ({_tempPokemon.Name}) took {10 * Fire} Fire Damage");
                        }
                        trainer.PokemonTakeDamage(_tempPokemon, 10 * Fire);
                    }
                }
            }
            if (Water > 0)
            {
                foreach (var trainer in Trainers.Where(x => x.GetPokemons.Any(y => y.Element == "Water")))
                {
                    trainer.Badges += Water;
                }
                foreach (var trainer in Trainers.Where(x => !x.GetPokemons.Any(y => y.Element == "Water")))
                {
                    for (int i = 0; i < trainer.GetPokemons.Count(); i++)
                    {
                        var _tempPokemon = trainer.GetPokemons[i];
                        if (_tempPokemon.Health - 10 * Water <= 0)
                        {
                            Console.WriteLine($"{Trainers.FirstOrDefault(x => x.GetPokemons.Any(y => y.Name == _tempPokemon.Name)).Name} ({_tempPokemon.Name}) died");
                        }
                        else
                        {
                            Console.WriteLine($"{Trainers.FirstOrDefault(x => x.GetPokemons.Any(y => y.Name == _tempPokemon.Name)).Name} ({_tempPokemon.Name}) took {10 * Water} Water Damage");
                        }
                        trainer.PokemonTakeDamage(_tempPokemon, 10 * Water);
                    }
                }
            }
            if (Electricity > 0)
            {
                foreach (var trainer in Trainers.Where(x => x.GetPokemons.Any(y => y.Element == "Electricity")))
                {
                    trainer.Badges += Electricity;
                }
                foreach (var trainer in Trainers.Where(x => !x.GetPokemons.Any(y => y.Element == "Electricity")))
                {
                    for (int i = 0; i < trainer.GetPokemons.Count(); i++)
                    {
                        var _tempPokemon = trainer.GetPokemons[i];
                        if (_tempPokemon.Health - 10 * Electricity <= 0)
                        {
                            Console.WriteLine($"{Trainers.FirstOrDefault(x => x.GetPokemons.Any(y => y.Name == _tempPokemon.Name)).Name} ({_tempPokemon.Name}) died");
                        }
                        else
                        {
                            Console.WriteLine($"{Trainers.FirstOrDefault(x => x.GetPokemons.Any(y => y.Name == _tempPokemon.Name)).Name} ({_tempPokemon.Name}) took {10 * Electricity} Electricity Damage");
                        }
                        trainer.PokemonTakeDamage(_tempPokemon, 10 * Electricity);
                    }
                }
            }

            Console.WriteLine(new string('-', 25));
            Console.WriteLine("End of Battle Log");
            Console.WriteLine(new string('=', 50));

            foreach (var trainer in Trainers.OrderByDescending(x => x.Badges))
            {
                Console.WriteLine($"Trainer Name: {trainer.Name} | Badges: {trainer.Badges} | Pokemons: {string.Join(", ", trainer.GetPokemons.Select(x => x.Name))}");
            }
        }
Exemplo n.º 5
0
        public static void Main()
        {
            List <Trainer> trainers = new List <Trainer>();

            while (true)
            {
                string[] input = Console.ReadLine()
                                 .Split(" ", StringSplitOptions.RemoveEmptyEntries);

                if (input[0] == "Tournament")
                {
                    break;
                }

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

                Pokemon pokemon = new Pokemon(pokemonName, pokemonElement, pokemonHealth);

                if (!trainers.Any(t => t.Name == trainerName))
                {
                    Trainer newTrainer = new Trainer(trainerName);
                    newTrainer.AddPokemon(pokemon);
                    trainers.Add(newTrainer);
                }
                else
                {
                    var currentTrainer = trainers.FirstOrDefault(t => t.Name == trainerName);
                    currentTrainer.CollectionOfPokemon.Add(pokemon);
                }
            }

            while (true)
            {
                string element = Console.ReadLine();

                if (element == "End")
                {
                    break;
                }
                else if (element != "Fire" && element != "Water" && element != "Electricity")
                {
                    continue;
                }

                foreach (var trainer in trainers)
                {
                    if (trainer.CollectionOfPokemon.Any(x => x.Element == element))
                    {
                        trainer.AddBadges();
                    }
                    else
                    {
                        trainer.ReduciceHealth();
                        trainer.RemovePokemon();
                    }
                }
            }

            foreach (var item in trainers.OrderByDescending(x => x.NumberOfBadges))
            {
                Console.WriteLine(item);
            }
        }