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>()); }