public PairString GetRandomPhrase(SposobPodgotovki sposob, int rules, int[] output, int errors) { string s = GetRandString_ProperLength(sposob, output, errors); PairString ts = new PairString(); ts.Show = ts.Correct = s; char[] arr = s.ToCharArray(); char c, cc; int k; for (int i = 0; i < errors; i++) { do // подбираем рандомно символ в строке, избегая уже использованных { k = Random4ik(s.Length); c = s[k]; } while (!isChar(c) || arr [k] != c); cc = MakeError(arr, k, rules); // arr [k] = cc; // Debug.Log ("после замены " + arr[k]); } s = ts.Show = MakeString(arr); return(ts); }
private string GetRandString_ProperLength(SposobPodgotovki sposob, int[] output, int errors) { string s; do { if (sposob == SposobPodgotovki.Random4ik) { s = Phrases [Random4ik(SourceLength)]; } else { s = Phrases [SourceIndex++]; } s = s.Trim(); // обрабатываем фразу на предмет скобок s = RemoveBrackers(s); } while (WordsCount(s) < errors || !Prokrust(s, output)); return(s); }