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); } }
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); } }
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); }
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))}"); } }
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); } }