示例#1
0
 private void AddToResults(KSItem curItem)
 {
     if (curItem != null)
     {
         Solution.Add(curItem);
         Result.Value  += curItem.Value;
         Result.Weight += curItem.Weight;
         Result.Volume += curItem.Volume;
     }
 }
示例#2
0
        public bool TryAddItem(KSItem curItem)
        {
            if (CanAddItem(curItem))
            {
                AddToResults(curItem);
                return(true);
            }

            return(false);
        }
示例#3
0
        private bool CanAddItem(KSItem curItem)
        {
            if (curItem != null)
            {
                int testWeight = curItem.Weight + Result.Weight;
                int testVolume = curItem.Volume + Result.Volume;

                //Verify adding the next item does NOT violate a constraint
                //then add it to the current solution
                if (testWeight <= TM.MaxWeight &&
                    (TM.MaxVolume == null || (testVolume <= TM.MaxVolume)))
                {
                    return(true);
                }
            }

            return(false);
        }