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; } } } } } }
public static Wagon CreateNewWagon(Animal animal) { Wagon wagon = new Wagon(); wagon.AddAnimal(animal); wagons.Add(wagon); return(wagon); }
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; } } } } } }