Esempio n. 1
0
        private bool TryToPlaceAnimalWithCarnivores(Animal animal, Wagon wagon)
        {
            if (wagon.IsBigger(animal))
            {
                AddAnimalToWagon(wagon, animal);
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        public void performAddToWagon()
        {
            animals = animals.OrderBy(animal => animal.getSize()).ToList();
            List <Animal> herbivores = animals.Where(animal => animal.getConsumptionType().Equals(ConsumptionType.HERBIVORE)).ToList();
            List <Wagon>  wagons     = animals.Where(animal => animal.getConsumptionType().Equals(ConsumptionType.CARNIVORE)).Select(animal =>
            {
                var newWagon = new Wagon();
                newWagon.addAnimal(animal);
                return(newWagon);
            }).ToList();


            int wagonamount = 0;

            foreach (Animal herbivore in herbivores)
            {
                while (true)
                {
                    if (wagons[wagonamount].canAnimalBeAdded(herbivore))
                    {
                        wagons[wagonamount].addAnimal(herbivore);
                        wagonamount = 0;
                        break;
                    }
                    else if (wagonamount + 1 < wagons.Count)
                    {
                        wagonamount++;
                    }
                    else
                    {
                        var newWagon = new Wagon();
                        newWagon.addAnimal(herbivore);
                        wagons.Add(newWagon);
                        wagonamount++;
                        break;
                    }
                }
            }
            foreach (Wagon wagon in wagons)
            {
                foreach (Animal animal in wagon.filledAnimals)
                {
                    animals.Remove(animal);
                }
                madeWagons.Add(wagon);
            }
        }
Esempio n. 3
0
 private bool TryToPlaceAnimal(Animal animal, Wagon wagon)
 {
     if (!wagon.ContainsCarnivore())
     {
         // Because of SortAnimalsList() I assume it can't be a Carnivore that gets added with Herbivores.
         AddAnimalToWagon(wagon, animal);
         return(true);
     }
     else
     {
         if (TryToPlaceAnimalWithCarnivores(animal, wagon))
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 4
0
 public void AddAnimalToWagon(Wagon wagon, Animal animal)
 {
     wagon.AddAnimalToWagon(animal);
     AnimalsToAdd.Remove(animal);
 }