Esempio n. 1
0
        public int?FindChoicesRemaining(OrderedFilmRank orderedFilmRank)
        {
            int choicesRemaining = 0;
            var sw = new Stopwatch();

            sw.Start();
            if (!orderedFilmRank.Completed)
            {
                var cloned = orderedFilmRank.Clone();
                var random = new Random();

                var sortResult = orderService.OrderFilms(orderedFilmRank.SortedFilms.Where(f => !f.Ignore));
                do
                {
                    if (random.Next() % 2 == 0)
                    {
                        sortResult.LeftSort.AddHigherRankedObject(sortResult.RightSort);
                    }
                    else
                    {
                        sortResult.RightSort.AddHigherRankedObject(sortResult.LeftSort);
                    }
                    sortResult = orderService.OrderFilms(sortResult.SortedResults.Where(f => !f.Ignore));
                    choicesRemaining++;
                } while (!sortResult.Completed);
            }
            sw.Stop();
            Console.WriteLine($"Choices {choicesRemaining} | Seconds {sw.Elapsed.TotalSeconds}");
            return(choicesRemaining);
        }
Esempio n. 2
0
        public FilmRank Map(OrderedFilmRank orderedFilmList)
        {
            var filmList = new FilmRank()
            {
                Id               = orderedFilmList.Id,
                Completed        = orderedFilmList.Completed,
                ChoiceA          = filmMapper.Map(orderedFilmList.ChoiceA),
                ChoiceB          = filmMapper.Map(orderedFilmList.ChoiceB),
                SortedFilms      = orderedFilmList.SortedFilms.Select(f => filmMapper.Map(f)).ToArray(),
                IgnoredFilms     = orderedFilmList.IgnoredFilms.Select(f => filmMapper.Map(f)).ToArray(),
                ChoicesRemaining = orderedFilmList.ChoicesRemaining
            };

            return(filmList);
        }