Example #1
0
        private List <Slide> GenerateSeekXSlideSequence(UserGameSettings gameSettings, string seed, bool isAX)
        {
            // Create slide collection using the 50%X and 50%Distractor
            List <Slide> SlideCollection = new List <Slide>();
            // X
            int typeXSlideCount = (int)(gameSettings.SlideCount * 0.5);

            for (int i = 0; i < typeXSlideCount; i++)
            {
                var slide = new Slide(SlideType.X, gameSettings.SlideDisplayDuration,
                                      GenerateSeekXImageSequence(gameSettings.SeekGridOptions, true),
                                      ThreadSafeRandom.GetRandomNumber(gameSettings.BlankSlideDisplayTimes));
                if (isAX)
                {
                    slide.BorderColor = XSlideBorderColor;
                }
                SlideCollection.Add(slide);
            }
            // DistractorY
            for (int i = 0; i < gameSettings.SlideCount - typeXSlideCount; i++)
            {
                var slide = new Slide(SlideType.Y, gameSettings.SlideDisplayDuration,
                                      GenerateSeekXImageSequence(gameSettings.SeekGridOptions, false),
                                      ThreadSafeRandom.GetRandomNumber(gameSettings.BlankSlideDisplayTimes));
                if (isAX)
                {
                    slide.BorderColor = GetRandomYDistractorBorderColor();
                }
                SlideCollection.Add(slide);
            }
            // Generate random number generator
            Random random = new Random(seed.GetHashCode());

            // Shuffle
            return(SlideCollection.OrderBy(i => random.Next()).ToList <Slide>());
        }