我是初学者,一直在玩C#。我最近为非常受欢迎的“牛和公牛”文字游戏编写了代码。它为2名球员工作,即;一个玩家想到一个单词而另一个人必须猜测它。我只有10次机会猜测。
我现在想为单个玩家制作游戏(Computer v Human)。我想知道是否还有没有字母重复的英语语言中的所有4个字母的单词(我将游戏仅限于4个字母单词)。我知道我可以使用Enumeration并写下所有4个字母的单词。但那是硬编码的话。这将是我的最后一个选择。我可以输入所有单词,但如果我玩游戏,我会对这个单词有所了解。
答案 0 :(得分:0)
假设您有一个名为words
list
您可以使用正则表达式选择4个字母的唯一单词
List<string> 4letterUniqueWords=words
.Where(x=>Regex.IsMatch(x,"^(?=^[a-zA-Z]{4}$)(?!^.*?(.).*?\1.*?$).*?$"))
.Select(y=>y)
.ToList<string>();
^(?=^[a-zA-Z]{4}$)(?!^.*?(.).*?\1.*?$).*?$
--------------- ------------------ ---
| | |->matches if both the lookaheads are true
| |->checks if there are any repeating words
|->checks if the words contains 4 letter alphabetic words