Beispiel #1
0
 public MergeGroupFight(MergeSortGroup left, MergeSortGroup right, MergeSorter mothership)
 {
     _sortedItems = new List <SignitureItem>();
     LeftGroup    = left;
     RightGroup   = right;
     _mothership  = mothership;
 }
Beispiel #2
0
 internal void Advance()
 {
     if (CurrentFight.Complete)
     {
         MergeSortGroup newGroup = CurrentFight.ToGroup();
         _groups.Add(newGroup);
         AdvanceCurrentFight();
     }
     if (CurrentItemFight != null)
     {
         CurrentItemFight = CurrentFight.GetNextFight();
     }
 }
Beispiel #3
0
        private List <MergeGroupFight> CreateNewFights()
        {
            List <MergeGroupFight> ret = new List <MergeGroupFight>();

            for (int i = 0; i < _groups.Count; i += 2)
            {
                MergeSortGroup  leftGroup  = _groups[i];
                MergeSortGroup  rightGroup = _groups[i + 1];
                MergeGroupFight fight      = new MergeGroupFight(leftGroup, rightGroup, this);
                ret.Add(fight);
            }
            //TODO: Handle odd numbers
            return(ret);
        }