Ejemplo n.º 1
0
        private List <QuickSortGroup> GetGroups(IEnumerable <SignitureItem> items)
        {
            Dictionary <int, List <SignitureItem> > dictionary = new Dictionary <int, List <SignitureItem> >();

            foreach (SignitureItem item in items)
            {
                if (dictionary.ContainsKey(item.Rank))
                {
                    dictionary[item.Rank].Add(item);
                }
                else
                {
                    dictionary.Add(item.Rank, new List <SignitureItem>()
                    {
                        item
                    });
                }
            }
            List <QuickSortGroup> ret = new List <QuickSortGroup>();

            foreach (List <SignitureItem> item in dictionary.Values)
            {
                List <SignitureItem> unsortedSet = item.ToList();
                SignitureItem        pivotItem   = unsortedSet[0];
                unsortedSet.RemoveAt(0);
                QuickSortGroup group = new QuickSortGroup(pivotItem, unsortedSet, pivotItem.Rank, this);
                ret.Add(group);
            }
            return(ret);
        }
Ejemplo n.º 2
0
        public ItemFight GetNextFight()
        {
            SignitureItem left  = LeftGroup.TakeLastItem();
            SignitureItem right = RightGroup.TakeLastItem();

            return(new ItemFight(left, right, this));
        }
Ejemplo n.º 3
0
        public SignitureItem TakeLastItem()
        {
            SignitureItem ret = _items.Last();

            _items.Remove(ret);
            return(ret);
        }
Ejemplo n.º 4
0
        public static MainViewModel LoadFromRaw(string rawPath, string xmlPath)
        {
            List <SignitureItem> initialItems = SignitureItem.LoadFromRawText(rawPath);
            MainViewModel        viewModel    = new MainViewModel(initialItems, xmlPath);

            viewModel.Save();
            return(viewModel);
        }
Ejemplo n.º 5
0
        private QuickSortGroup GetGroupFrom(List <SignitureItem> items, int rankOffset)
        {
            if (!items.Any())
            {
                return(null);
            }
            SignitureItem        pivotItem     = GetPivotItem(items);
            List <SignitureItem> unsortedItems = items.ToList();

            unsortedItems.Remove(pivotItem);
            return(new QuickSortGroup(pivotItem, unsortedItems, rankOffset, _mothership));
        }
Ejemplo n.º 6
0
        public static MainViewModel LoadFromXml(string path)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(path);
            List <SignitureItem> items = new List <SignitureItem>();

            foreach (XmlElement item in doc.DocumentElement.ChildNodes)
            {
                SignitureItem loadedItem = SignitureItem.FromXml(item);
                items.Add(loadedItem);
            }
            return(new MainViewModel(items, path));
        }
Ejemplo n.º 7
0
        public QuickSortGroup(SignitureItem pivotItem, IEnumerable <SignitureItem> unsortedLines, int rankOffset, PhraseSorter mothership)
        {
            _mothership    = mothership;
            PivotItem      = pivotItem;
            _rankOffset    = rankOffset;
            _unsortedLines = unsortedLines.ToList();
            _betterLines   = new List <SignitureItem>();
            _worseLines    = new List <SignitureItem>();

            foreach (SignitureItem item in AllItems)
            {
                item.Rank = rankOffset;
            }
        }
Ejemplo n.º 8
0
        public static List <SignitureItem> LoadFromRawText(string textFile)
        {
            List <SignitureItem> ret = new List <SignitureItem>();

            string[] rawLines = File.ReadAllLines(textFile);

            for (int i = 0; i < rawLines.Length - 1; i++)
            {
                string        currentLine      = rawLines[i];
                RawLine       currentConverted = new RawLine(currentLine);
                string        nextLine         = rawLines[i + 1];
                RawLine       nextConverted    = new RawLine(nextLine);
                int           rank             = rawLines.Length - i;
                SignitureItem item             = new SignitureItem(currentConverted.StartTime, nextConverted.StartTime, currentConverted.Phrase, rank);
                ret.Add(item);
            }
            return(ret);
        }
Ejemplo n.º 9
0
 public PhraseFight(SignitureItem leftItem, SignitureItem rightItem)
 {
     LeftItem  = leftItem;
     RightItem = rightItem;
 }
Ejemplo n.º 10
0
 public ItemFight(SignitureItem left, SignitureItem right, MergeGroupFight source)
 {
     Left    = left;
     Right   = right;
     _source = source;
 }
Ejemplo n.º 11
0
 public void ReturnItem(SignitureItem item)
 {
     _items.Add(item);
 }