public void AddSentance(string sentance) { string[] words = sentance.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); LanguageElement prevWord = null; for (int i = 0; i < words.Length; i++) { string word = words[i]; LanguageElement element; if (i == 0) { element = new LanguageElement(word, true); beginings.Add(element); } else if (i == words.Length - 1) { element = new LanguageElement(word, false, true); mc.Add(prevWord, element); } else { element = new LanguageElement(word); mc.Add(prevWord, element); } prevWord = element; } }
public string GenerateSentance() { string sentance = ""; LanguageElement start = beginings[rnd.Next(0, beginings.Count - 1)]; LanguageElement pointer = start; bool building = true; while (building) { sentance += $"{pointer.ConstructElement()} "; pointer = mc.GetNext(pointer); if (pointer.isSentanceEnd()) { sentance += $"{pointer.ConstructElement()} "; building = false; } } return(sentance); }