public static Food GetFood(Food.Foods food) { switch (food) { case Food.Foods.Cram: return(new Cram()); case Food.Foods.Lembas: return(new Lembas()); case Food.Foods.Apple: return(new Apple()); case Food.Foods.Melon: return(new Melon()); case Food.Foods.HoneyCake: return(new HoneyCake()); case Food.Foods.Mushrooms: return(new Mushrooms()); case Food.Foods.OtherFood: return(new OtherFood()); default: throw new NotSupportedException(); } }
public static void Main() { string[] inputFoods = Console.ReadLine().Split(); int happinessPoints = 0; foreach (string foodStr in inputFoods) { Food.Foods food = Food.Foods.OtherFood; try { food = Enum.Parse <Food.Foods>(foodStr, true); } catch (ArgumentException) { } Food foodObj = FoodFactory.GetFood(food); happinessPoints += foodObj.HappinessPoints; } Mood mood = MoodFactory.GetMood(happinessPoints); Console.WriteLine(happinessPoints); Console.WriteLine(mood); }