コード例 #1
0
        public void Run()
        {
            string input = reader.ReadLine();

            while (input != "End")
            {
                string[] firstSplit = input.Split();
                Animal   animal     = animalFactory.CreateAnimal(firstSplit);
                animals.Add(animal);

                string[] secondSplit = reader.ReadLine().Split();
                Food     food        = foodFactory.CreateFood(secondSplit);

                writer.WriteLine(animal.ProduceSound());
                try
                {
                    animal.Feed(food);
                }
                catch (Exception ae)
                {
                    writer.WriteLine(ae.Message);
                }

                input = reader.ReadLine();
            }

            foreach (var anim in animals)
            {
                writer.WriteLine(anim.ToString());
            }
        }
コード例 #2
0
        public void Run()
        {
            string command;

            while ((command = Console.ReadLine()) != "End")
            {
                var animalData = command.Split();
                var foodData   = Console.ReadLine().Split();

                IAnimal animal = animalFactory.CreateAnimal(animalData);
                IFood   food   = foodFactory.CreateFood(foodData[0], int.Parse(foodData[1]));

                animal.ProduceSound();
                try
                {
                    animal.Eat(food);
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine(ae.Message);
                }

                animals.Add(animal);
            }

            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #3
0
        private Food CreateFoodByArgs()
        {
            string[] foodArgs = Console.ReadLine().Split();
            Food     current  = foodFactory.CreateFood(foodArgs);

            return(current);
        }
コード例 #4
0
        public void Run()
        {
            string        input         = string.Empty;
            List <Animal> listOfAnimals = new List <Animal>();

            while ((input = Console.ReadLine()) != "End")
            {
                string[] animalData = input
                                      .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                                      .ToArray();
                string[] foodData = ReadFromConsole();
                Animal   animal   = AnimalFactory.CreateAnimal(animalData);
                listOfAnimals.Add(animal);
                Food food = FoodFactory.CreateFood(foodData);
                Console.WriteLine(animal.ProduceSound());
                try
                {
                    animal.Eat(food);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                    continue;
                }
            }
            listOfAnimals.ForEach(Console.WriteLine);
        }
コード例 #5
0
ファイル: Engine.cs プロジェクト: ivaKozarova/CSharpOOP
        public void Run()
        {
            string line;

            while ((line = reader.ReadLine()) != "End")
            {
                var    animalInfo = line.Split();
                var    foodInfo   = reader.ReadLine().Split();
                Animal animal     = animalFactory.CreateAnimal(animalInfo);
                Food   food       = foodFactory.CreateFood(foodInfo);
                writer.WriteLine(animal.ProduceSound());
                try
                {
                    animal.Feed(food);
                }
                catch (ArgumentException ae)
                {
                    writer.WriteLine(ae.Message);
                }
                animals.Add(animal);
            }

            foreach (var animal in this.animals)
            {
                writer.WriteLine(animal.ToString());
            }
        }
コード例 #6
0
ファイル: Engine.cs プロジェクト: stelianraev/C-Sharp-OOP
        public void Run()
        {
            List <Animal> animals = new List <Animal>();

            string command;

            while ((command = Console.ReadLine()) != "End")
            {
                string[] animalArgs = command.Split(" ", StringSplitOptions.RemoveEmptyEntries)
                                      .ToArray();

                Animal animal = AnimalFactory.Create(animalArgs);
                animals.Add(animal);
                Console.WriteLine(animal.ProduceSound());

                string[] foodArgs = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries)
                                    .ToArray();

                Food food = FoodFactory.CreateFood(foodArgs);

                try
                {
                    animal.EatFood(food);
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            animals.ForEach(Console.WriteLine);
        }
コード例 #7
0
        public void Run()
        {
            string input;

            while ((input = Read()) != "End")
            {
                try
                {
                    IAnimal animal = animalFactory.CreateAnimal(input.Split());

                    IFood food = foodFactory.CreateFood(Read().Split());

                    animals.Add(animal);
                    Print(animal.AskFood());

                    animal.Eat(food);
                }
                catch (ArgumentException ae)
                {
                    Print(ae.Message);
                }
            }

            animals.ForEach(a => Print(a.ToString()));
        }
コード例 #8
0
ファイル: Engine.cs プロジェクト: svetlyoek/OOP
        public void Run()
        {
            string line = Console.ReadLine();

            while (line != "End")
            {
                string[] animalInfo = line
                                      .Split()
                                      .ToArray();

                string[] foodInfo = Console.ReadLine()
                                    .Split()
                                    .ToArray();

                Animal animal = AnimalFactory.CreateAnimal(animalInfo);
                Food   food   = FoodFactory.CreateFood(foodInfo);

                Console.WriteLine(animal.MakeSound());

                try
                {
                    animal.Feed(food);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                animals.Add(animal);

                line = Console.ReadLine();
            }

            PrintAnimals();
        }
コード例 #9
0
        public void Run()
        {
            string command = "";

            while ((command = Console.ReadLine()) != "End")
            {
                string[] animalInfo = command.Split();
                string[] foodInfo   = Console.ReadLine().Split();

                string animalType = animalInfo[0].ToLower();
                string name       = animalInfo[1];
                double weight     = double.Parse(animalInfo[2]);

                if (animalType == "cat" || animalType == "tiger")
                {
                    string livingRegion = animalInfo[3];
                    string breed        = animalInfo[4];
                    animal = (IAnimal)felineFactory.CreateFeline(animalType, name, weight, livingRegion, breed);
                }
                else if (animalType == "owl" || animalType == "hen")
                {
                    double wingSize = double.Parse(animalInfo[3]);
                    animal = (IAnimal)birdFactory.CreateBird(animalType, name, weight, wingSize);
                }
                else if (animalType == "mouse" || animalType == "dog")
                {
                    string livingRegion = animalInfo[3];
                    animal = (IAnimal)mammalFactory.CreateMammal(animalType, name, weight, livingRegion);
                }

                animals.Add(animal);
                animal.ProduceSound();

                try
                {
                    string foodType = foodInfo[0];
                    double quantity = double.Parse(foodInfo[1]);

                    IFood food = foodFactory.CreateFood(foodType, quantity);
                    animal.Eat(food);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            foreach (var animal in this.animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #10
0
ファイル: Engine.cs プロジェクト: NovaBG03/SoftUniExercises
        public void Run()
        {
            int    line  = 0;
            string input = Console.ReadLine();

            while (input != "End")
            {
                if (line % 2 == 0)
                {
                    IAnimal animal = animalFactory.CreateAnimal(input.Split());
                    if (animal == null)
                    {
                        continue;
                    }
                    animals.Add(animal);
                }
                else
                {
                    IFood food = foodFactory.CreateFood(input.Split());
                    if (food == null)
                    {
                        continue;
                    }
                    foods.Add(food);
                }

                line++;
                input = Console.ReadLine();
            }

            for (int i = 0; i < foods.Count; i++)
            {
                IAnimal animal = animals[i];
                IFood   food   = foods[i];
                Console.WriteLine(animal.ProduceSound());
                try
                {
                    animal.Eat(food);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #11
0
ファイル: Engine.cs プロジェクト: KamenYu/Csharp-Advanced
        public void Run()
        {
            string animalInfo;

            while ((animalInfo = Console.ReadLine()) != "End")
            {
                string   foodInfo     = Console.ReadLine();
                string[] animalTokens = animalInfo.Split(' ', StringSplitOptions.RemoveEmptyEntries);

                string[] argS = animalTokens
                                .Skip(3).ToArray();
                Animal animal = null;

                try
                {
                    animal = animalFactory.Create(animalTokens[0], animalTokens[1], double.Parse(animalTokens[2]), argS);
                    animals.Add(animal);

                    Console.WriteLine(animal.ProduceSoundSForFood());
                }
                catch (InvalidOperationException ioex)
                {
                    Console.WriteLine(ioex.Message);
                }

                string[] foodTokens = foodInfo.Split(' ', StringSplitOptions.RemoveEmptyEntries);

                try
                {
                    Food food = foodFactory.CreateFood(foodTokens[0], int.Parse(foodTokens[1]));

                    if (animal != null)
                    {
                        animal.Feed(food);
                    }
                }
                catch (InvalidOperationException ioex)
                {
                    Console.WriteLine(ioex.Message);
                }
            }

            foreach (Animal animall in animals)
            {
                Console.WriteLine(animall);
            }
        }
コード例 #12
0
        public void Run()
        {
            string input = Console.ReadLine();

            while (input != "End")
            {
                string[] animalInfo = input.Split();
                string[] foodInfo   = Console.ReadLine().Split();

                string animalType = animalInfo[0];
                string name       = animalInfo[1];
                double weight     = double.Parse(animalInfo[2]);

                if (animalType == "Hen" || animalType == "Owl")
                {
                    double wingSize = double.Parse(animalInfo[3]);
                    animal = birdFactory.CreateBird(animalType, name, weight, wingSize);
                }
                else if (animalType == "Dog" || animalType == "Mouse")
                {
                    string livingRegion = animalInfo[3];
                    animal = mammalFactory.CreateMammal(animalType, name, weight, livingRegion);
                }
                else if (animalType == "Cat" || animalType == "Tiger")
                {
                    string livingRegion = animalInfo[3];
                    string breed        = animalInfo[4];
                    animal = felineFactory.CreateFeline(animalType, name, weight, livingRegion, breed);
                }

                string foodType = foodInfo[0];
                int    quantity = int.Parse(foodInfo[1]);
                var    food     = foodFactory.CreateFood(foodType, quantity);

                animal.ProduceSound();
                animal.Eat(food);

                animals.Add(animal);

                input = Console.ReadLine();
            }

            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #13
0
        public void Run()
        {
            string[] info = Console.ReadLine()
                            .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                            .ToArray();

            bool                isOddLine   = false;
            FoodFactory         foodFactory = new FoodFactory();
            ICollection <IFood> foods       = new List <IFood>();

            AnimalFactory animalFactory = new AnimalFactory();

            ICollection <IAnimal> animals = new List <IAnimal>();

            while (info[0]?.ToLower() != "end")
            {
                if (isOddLine)
                {
                    isOddLine = false;
                    IFood   food   = foodFactory.CreateFood(info);
                    IAnimal animal = animals.Last();
                    try
                    {
                        animal.Eat(food);
                    }
                    catch (ArgumentException ae)
                    {
                        Console.WriteLine(ae.Message);
                    }
                }
                else
                {
                    isOddLine = true;
                    IAnimal animal = animalFactory.CreateAnimal(info);
                    animal.ProduceSound();
                    animals.Add(animal);
                }

                info = Console.ReadLine()
                       .Split(" ", StringSplitOptions.RemoveEmptyEntries)
                       .ToArray();
            }
            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #14
0
ファイル: Engine.cs プロジェクト: HristoGadev/CSharpAdventure
        public void Run()
        {
            var input = Console.ReadLine();

            while (input != "End")
            {
                try
                {
                    var animalArgs = input.Split();
                    var foodInfo   = Console.ReadLine().Split();
                    var animalType = animalArgs[0];
                    var name       = animalArgs[1];
                    var weight     = double.Parse(animalArgs[2]);

                    if (animalType == "Hen" || animalType == "Owl")
                    {
                        var wingSize = double.Parse(animalArgs[3]);
                        animal = birdFactory.CreateBird(animalType, name, weight, wingSize);
                    }
                    else if (animalType == "Cat" || animalType == "Tiger")
                    {
                        var region = animalArgs[3];
                        var breed  = animalArgs[4];
                        animal = felinesFactory.CreateFeline(animalType, name, weight, region, breed);
                    }
                    if (animalType == "Dog" || animalType == "Mouse")
                    {
                        var region = animalArgs[3];
                        animal = mammalFactory.CreateMammal(animalType, name, weight, region);
                    }
                    var foodType     = foodInfo[0];
                    var foodQuantity = int.Parse(foodInfo[1]);

                    var food = foodFactory.CreateFood(foodType, foodQuantity);
                    animal.ProduceSound();
                    animal.Eat(food);
                    animals.Add(animal);
                    Console.WriteLine(animal);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                input = Console.ReadLine();
            }
        }
コード例 #15
0
        public void Run()
        {
            string command = string.Empty;

            while ((command = Console.ReadLine()) != "End")
            {
                string[] animalArgs = command.Split();
                string   animalType = animalArgs[0];

                Animal animal = null;
                try
                {
                    animal = animalFactory
                             .CreateAnimal(animalType, animalArgs.Skip(1).ToArray());
                    animals.Add(animal);
                    Console.WriteLine(animal.ProduceSound());
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine(ioe.Message);
                }

                string[] foodArgs = Console.ReadLine().Split();
                string   foodType = foodArgs[0];
                int      foodQty  = int.Parse(foodArgs[1]);

                Food food = null;
                try
                {
                    food = foodFactory
                           .CreateFood(foodType, foodQty);
                    animal?.Feed(food);
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine(ioe.Message);
                }
            }
            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #16
0
        public void Run()
        {
            string input = Console.ReadLine();

            while (input != "End")
            {
                string[] args = input.Split();

                string animalType   = args[0];
                string animalName   = args[1];
                double animalWeight = double.Parse(args[2]);

                string[] foodArgs = Console.ReadLine().Split();

                string foodType = foodArgs[0];
                int    quantity = int.Parse(foodArgs[1]);

                Animal animal = animalFacory.CreateAnimal(animalType, animalName, animalWeight, args);

                animals.Add(animal);

                Food food = foodFactory.CreateFood(foodType, quantity);

                animal.ProduceSound();

                try
                {
                    GiveFood(food, animalName, animalType);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                input = Console.ReadLine();
            }

            PrintAnimalsInfo();
        }
コード例 #17
0
ファイル: Engine.cs プロジェクト: dvasilev89/SoftUni
        public void Run()
        {
            string input = Console.ReadLine();

            while (input != "End")
            {
                string[] animalInfo = input.Split();
                string[] foodInfo   = Console.ReadLine().Split();

                string type   = animalInfo[0].ToLower();
                string name   = animalInfo[1];
                double weight = double.Parse(animalInfo[2]);

                string foodType     = foodInfo[0];
                int    foodQuantity = int.Parse(foodInfo[1]);

                Animal animal = animalFactory.CreateAnimal(animalInfo);
                animals.Add(animal);
                Console.WriteLine(animal.ProduceSound());
                Food food = foodFactory.CreateFood(foodType, foodQuantity);

                try
                {
                    animal.EatFood(food);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }

                input = Console.ReadLine();
            }

            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #18
0
ファイル: Engine.cs プロジェクト: astanchev/CSharp-OOP
        public void Run()
        {
            while (true)
            {
                string input = Console.ReadLine();
                if (input == "End")
                {
                    break;
                }

                string[] animalArgs = input.Split();

                Animal animal = AnimalFactory.CreateAnimal(animalArgs);

                string[] foodArgs = Console.ReadLine().Split();

                Food food = FoodFactory.CreateFood(foodArgs);

                Console.WriteLine(animal.ProduceSound());

                try
                {
                    animal.Eat(food);
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine(ae.Message);
                }

                animals.Add(animal);
            }

            foreach (var animal in animals)
            {
                Console.WriteLine(animal);
            }
        }
コード例 #19
0
 private void GetFood(string foodType, int foodQuantity)
 {
     food = foodFactory.CreateFood(foodType, foodQuantity);
 }
コード例 #20
0
        public void Run()
        {
            BirdFactory   birdFactory   = new BirdFactory();
            MammalFactory mammalFactory = new MammalFactory();
            FelineFactory felineFactory = new FelineFactory();
            FoodFactory   foodFactory   = new FoodFactory();

            List <Animal> animals = new List <Animal>();

            while (true)
            {
                string[] currentAnimal = Console.ReadLine().Split();

                if (currentAnimal[0] == "End")
                {
                    break;
                }

                string[] currentFood = Console.ReadLine().Split();

                string animalType   = currentAnimal[0];
                string animalName   = currentAnimal[1];
                double animalWeight = double.Parse(currentAnimal[2]);

                string foodType     = currentFood[0];
                int    foodQuantity = int.Parse(currentFood[1]);
                Food   food         = foodFactory.CreateFood(foodType, foodQuantity);

                try
                {
                    if (animalType == "Hen" || animalType == "Owl")
                    {
                        double wingSize = double.Parse(currentAnimal[3]);
                        Animal animal   = birdFactory.CreateBird(animalType, animalName, animalWeight, wingSize);

                        animal.ProduceSound();
                        animals.Add(animal);
                        animal.Eat(food);
                    }
                    else if (animalType == "Mouse" || animalType == "Dog")
                    {
                        string livingRegion = currentAnimal[3];
                        Animal animal       = mammalFactory.CreateMammal(animalType, animalName, animalWeight, livingRegion);

                        animal.ProduceSound();
                        animals.Add(animal);
                        animal.Eat(food);
                    }
                    else if (animalType == "Cat" || animalType == "Tiger")
                    {
                        string livingRegion = currentAnimal[3];
                        string breed        = currentAnimal[4];
                        Animal animal       = felineFactory.CreateFeline(animalType, animalName, animalWeight, livingRegion, breed);

                        animal.ProduceSound();
                        animals.Add(animal);
                        animal.Eat(food);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            foreach (Animal animal in animals)
            {
                Console.WriteLine(animal);
            }
        }