3

我是初学者,一直在玩 C#。我最近为非常流行的“牛和牛”文字游戏编写了代码。它适用于 2 名玩家,即;一个玩家想到一个词,另一个人必须猜它。我只给出 10 次猜测的机会。

我现在想为单人游戏制作游戏(电脑对人)。我想知道是否有没有字母重复的英语语言中的所有 4 个字母单词(我将游戏限制为仅 4 个字母单词)。我知道我可以使用枚举并写下所有 4 个字母的单词。但这是对单词的硬编码。那将是我最后的选择。我可以输入所有的单词,但如果我玩游戏,我会对这个词有一些了解。

4

1 回答 1

1

假设您有一个名为wordslist 的单词列表

您可以使用正则表达式选择 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
于 2012-11-13T08:21:11.857 回答