Example #1
0
        public List <Coupe> SortAnimalsIntoCoupes(List <Animal> animals)
        {
            //NotDone
            Train t = new Train();
            Coupe c = new Coupe();

            t.coupes.Add(c);
            foreach (var animal in animals)
            {
                foreach (var coupe in t.coupes.ToList())
                {
                    if (CanAnimalBeAdded(animal, coupe))
                    {
                        coupe.AnimalsInCoupe.Add(animal);
                        break;
                    }
                    if (coupe.coupeN == t.coupes.Count)
                    {
                        Coupe newc = new Coupe();
                        newc.AnimalsInCoupe.Add(animal);
                        t.coupes.Add(newc);
                        break;
                    }
                }
            }
            return(t.coupes);
        }
Example #2
0
 //Return coupe?
 public bool CanAnimalBeAdded(Animal a, Coupe c)
 {
     if (CheckCapacity(a, c) && CheckDietCompatibility(a, c))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #3
0
        public bool CheckCapacity(Animal a, Coupe c)
        {
            int total = 0;

            foreach (var animal in c.AnimalsInCoupe)
            {
                total = total + (int)animal.Size;
            }
            if ((int)a.Size + total > 10)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Example #4
0
 public bool CheckDietCompatibility(Animal a, Coupe c)
 {
     foreach (var animal in c.AnimalsInCoupe)
     {
         if (a.Diet == AnimalDiet.Carnivore)
         {
             //Check for size
             if (CheckSizeCompatibility(a, animal))
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
         else
         {
             return(true);
         }
     }
     //Returns true if list is empty.
     return(true);
 }