static void Main(string[] args) { var listAnimals = new List <Animal>(); var animalInput = Console.ReadLine().Split(); while (animalInput[0] != "End") { var type = animalInput[0]; var name = animalInput[1]; var weight = double.Parse(animalInput[2]); var food = Console.ReadLine().Split(); var foodType = food[0]; var foodCount = int.Parse(food[1]); if (animalInput.Count() == 4) { if (double.TryParse(animalInput[3], out double wingSize)) { if (type == "Hen") { var hen = new Hen(name, weight, wingSize); Console.WriteLine(hen.MakeSound()); hen.EatFood(foodCount, hen.Multiplier); listAnimals.Add(hen); } else { var owl = new Owl(name, weight, wingSize); Console.WriteLine(owl.MakeSound()); if (foodType == "Meat") { owl.EatFood(foodCount, owl.Multiplier); } else { Console.WriteLine(owl.AnimalDoesntEat(foodType)); } listAnimals.Add(owl); } } else { var region = animalInput[3]; if (type == "Dog") { var dog = new Dog(name, weight, region); Console.WriteLine(dog.MakeSound()); if (foodType == "Meat") { dog.EatFood(foodCount, dog.Multiplier); } else { Console.WriteLine(dog.AnimalDoesntEat(foodType)); } listAnimals.Add(dog); } else { var mouse = new Mouse(name, weight, region); Console.WriteLine(mouse.MakeSound()); if (foodType == "Vegetable" || foodType == "Fruit") { mouse.EatFood(foodCount, mouse.Multiplier); } else { Console.WriteLine(mouse.AnimalDoesntEat(foodType)); } listAnimals.Add(mouse); } } } else { var region = animalInput[3]; var breed = animalInput[4]; if (type == "Cat") { var cat = new Cat(name, weight, region, breed); Console.WriteLine(cat.MakeSound()); if (foodType == "Meat" || foodType == "Vegetable") { cat.EatFood(foodCount, cat.Multiplier); } else { Console.WriteLine(cat.AnimalDoesntEat(foodType)); } listAnimals.Add(cat); } else { var tiger = new Tiger(name, weight, region, breed); Console.WriteLine(tiger.MakeSound()); if (foodType == "Meat") { tiger.EatFood(foodCount, tiger.Multiplier); } else { Console.WriteLine(tiger.AnimalDoesntEat(foodType)); } listAnimals.Add(tiger); } } animalInput = Console.ReadLine().Split(); } foreach (var item in listAnimals) { Console.WriteLine(item.ToString()); } }
public static void Main() { var animals = new List <Animal>(); string inputLine; while ((inputLine = Console.ReadLine()) != "End") { var input = inputLine.Split(); Animal animal = null; Food food = null; var animalType = input[0]; var name = input[1]; var weight = double.Parse(input[2]); switch (animalType) { case nameof(Owl): animal = new Owl(name, weight, double.Parse(input[3])); break; case nameof(Hen): animal = new Hen(name, weight, double.Parse(input[3])); break; case nameof(Mouse): animal = new Mouse(name, weight, input[3]); break; case nameof(Dog): animal = new Dog(name, weight, input[3]); break; case nameof(Cat): animal = new Cat(name, weight, input[3], input[4]); break; case nameof(Tiger): animal = new Tiger(name, weight, input[3], input[4]); break; } inputLine = Console.ReadLine(); input = inputLine.Split(); var foodType = input[0]; var quantity = int.Parse(input[1]); switch (foodType) { case nameof(Vegetable): food = new Vegetable(quantity); break; case nameof(Fruit): food = new Fruit(quantity); break; case nameof(Meat): food = new Meat(quantity); break; case nameof(Seeds): food = new Seeds(quantity); break; } Console.WriteLine(animal.ProduceSound()); try { animal.EatFood(food); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); } animals.Add(animal); } animals.ForEach(a => Console.WriteLine(a)); }
static void Main(string[] args) { List <Animal> animals = new List <Animal>(); string input = Console.ReadLine(); while (input.ToLower() != "end") { var tokens = input.Split(" "); string[] foods = Console.ReadLine().Split(" "); var animalType = tokens[0]; var foodType = foods[0]; int food = int.Parse(foods[1]); switch (animalType) { case "Cat": Cat cat = new Cat(tokens[1], double.Parse(tokens[2]), tokens[3], tokens[4]); animals.Add(cat); cat.AskForFood(); if (foodType == "Vegetable" || foodType == "Meat") { cat.EatFood(food); cat.IncreaseWeight(); } else { Console.WriteLine($"Cat does not eat {foodType}!"); } break; case "Tiger": Tiger tiger = new Tiger(tokens[1], double.Parse(tokens[2]), tokens[3], tokens[4]); animals.Add(tiger); tiger.AskForFood(); if (foodType == "Meat") { tiger.EatFood(food); tiger.IncreaseWeight(); } else { Console.WriteLine($"Tiger does not eat {foodType}!"); } break; case "Dog": Dog dog = new Dog(tokens[1], double.Parse(tokens[2]), tokens[3]); animals.Add(dog); dog.AskForFood(); if (foodType == "Meat") { dog.EatFood(food); dog.IncreaseWeight(); } else { Console.WriteLine($"Dog does not eat {foodType}!"); } break; case "Mouse": Mouse mouse = new Mouse(tokens[1], double.Parse(tokens[2]), tokens[3]); animals.Add(mouse); mouse.AskForFood(); if (foodType == "Vegetable" || foodType == "Fruit") { mouse.EatFood(food); mouse.IncreaseWeight(); } else { Console.WriteLine($"Mouse does not eat {foodType}!"); } break; case "Hen": Hen hen = new Hen(tokens[1], double.Parse(tokens[2]), double.Parse(tokens[3])); animals.Add(hen); hen.AskForFood(); hen.EatFood(food); hen.IncreaseWeight(); break; case "Owl": Owl owl = new Owl(tokens[1], double.Parse(tokens[2]), double.Parse(tokens[3])); animals.Add(owl); owl.AskForFood(); if (foodType == "Meat") { owl.EatFood(food); owl.IncreaseWeight(); } else { Console.WriteLine($"Owl does not eat {foodType}!"); } break; } input = Console.ReadLine(); } foreach (var animal in animals) { Console.WriteLine(animal); } }