/// <summary> /// returns the maybe user altered point within the interval series, denoting the sequence to execute next /// the randomly chosen point is supplied; the sequence with the intervals and their corresponding sequences is supplied /// </summary> public double ChoosePoint(double pointToExecute, SequenceWeightedOne seq) { ycompClient.UpdateDisplay(); ycompClient.Sync(); context.workaround.PrintHighlighted("Please choose: Which point in the interval series (corresponding to a sequence) to execute?", HighlightingMode.Choicepoint); Console.WriteLine(" Pre-selecting point " + pointToExecute + " chosen by random."); Console.WriteLine("Press (e) to enter a point in the interval series of the sequence to show." + " Press (s) or (n) to commit to the pre-selected sequence and continue."); while(true) { context.highlightSeq = seq.Sequences[seq.GetSequenceFromPoint(pointToExecute)]; context.choice = true; context.sequences = seq.Sequences; PrintSequence(debugSequences.Peek(), context, debugSequences.Count); Console.WriteLine(); context.choice = false; context.sequences = null; ConsoleKeyInfo key = ReadKeyWithCancel(); switch(key.KeyChar) { case 'e': double num; Console.Write("Enter point in interval series of sequence to show: "); String numStr = Console.ReadLine(); if(double.TryParse(numStr, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out num)) { if(num < 0.0 || num > seq.Numbers[seq.Numbers.Count - 1]) { Console.WriteLine("You must specify a floating point number between 0.0 and " + seq.Numbers[seq.Numbers.Count - 1] + "!"); break; } pointToExecute = num; break; } Console.WriteLine("You must enter a valid floating point number!"); break; case 's': case 'n': return pointToExecute; default: Console.WriteLine("Illegal choice (Key = " + key.Key + ")! Only (e)nter number and (s)/(n) to commit and continue allowed! "); break; } } }