Esempio n. 1
0
        public static void LeftoverFill()
        {
            for (int i = 0; i < _herbivores.Count; i++)
            {
                if (_herbivores[i].AnimalSize != 0)
                {
                    _leftovers.Add(_herbivores[i]);
                }
            }

            if (_leftovers.Count > 0)
            {
                var clonedLeftovers = _leftovers.DeepClone();

                Wagon wagon = new Wagon(clonedLeftovers[0]);
                _wagons.Add(wagon);
                _leftovers[0].AnimalSize = 0;
                int check = wagon.CheckIfFilled();
                if (check < 10)
                {
                    for (int i = 1; i < _leftovers.Count; i++)
                    {
                        if (_leftovers[i].AnimalSize + check <= 10)
                        {
                            wagon.AddAnimal(clonedLeftovers[i]);
                            _leftovers[i].AnimalSize = 0;
                            check = check + clonedLeftovers[i].AnimalSize;
                        }
                    }
                }

                for (int i = 0; i < _leftovers.Count; i++)
                {
                    if (_leftovers[i].AnimalSize != 0)
                    {
                        Wagon wagon2 = new Wagon(clonedLeftovers[i]);
                        _wagons.Add(wagon2);
                        _leftovers[i].AnimalSize = 0;
                        int check2 = wagon2.CheckIfFilled();
                        for (int j = 0; j < _leftovers.Count; j++)
                        {
                            if (_leftovers[j].AnimalSize + check2 <= 10 && _leftovers[j].AnimalSize != 0)
                            {
                                wagon.AddAnimal(clonedLeftovers[i]);
                                _leftovers[j].AnimalSize = 0;
                            }
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public static void CreateWagon()
        {
            Animal[] meatAnimalses    = _carnivores.ToArray();
            var      clonedHerbivores = _herbivores.DeepClone();

            for (int i = 0; i < meatAnimalses.Length; i++)
            {
                if (meatAnimalses[i].AnimalSize == 5)
                {
                    Wagon wagon = new Wagon(meatAnimalses[i]);
                    _wagons.Add(wagon);
                }
                else if (meatAnimalses[i].AnimalSize == 3)
                {
                    Wagon wagon = new Wagon(meatAnimalses[i]);
                    _wagons.Add(wagon);

                    for (int j = 0; j < _herbivores.Count; j++)
                    {
                        if (_herbivores[j].AnimalSize == 5)
                        {
                            wagon.AddAnimal(clonedHerbivores[j]);
                            _herbivores[j].AnimalSize = 0;
                            break;
                        }
                    }
                }
                else if (meatAnimalses[i].AnimalSize == 1)
                {
                    Wagon wagon = new Wagon(meatAnimalses[i]);
                    _wagons.Add(wagon);
                    int count = 0;

                    for (int j = 0; j < _herbivores.Count; j++)
                    {
                        if (_herbivores[j].AnimalSize == 3)
                        {
                            wagon.AddAnimal(clonedHerbivores[j]);
                            _herbivores[j].AnimalSize = 0;

                            count++;
                            if (count == 3)
                            {
                                break;
                            }
                        }
                    }
                    int check = wagon.CheckIfFilled();
                    if (check < 5)
                    {
                        for (int j = 0; j < _herbivores.Count; j++)
                        {
                            if (_herbivores[j].AnimalSize == 5)
                            {
                                wagon.AddAnimal(clonedHerbivores[j]);
                                _herbivores[j].AnimalSize = 0;
                                break;
                            }
                        }
                    }
                }
            }
        }