3

私は初心者で、C# で遊んでいます。私は最近、非常に人気のある 'Cows and Bulls' ワード ゲームのコードを書きました。2人のプレーヤーで機能します。1 人のプレーヤーが単語を考え、もう 1 人がそれを推測する必要があります。推測の機会を 10 回だけ与えています。

私は今、1 人のプレーヤー (コンピュータ対人間) 向けのゲームを作りたいと思っています。文字の繰り返しなしで英語の4文字の単語をすべて取得する方法があるかどうか疑問に思っていました(ゲームを4文字の単語のみに制限しました)。Enumeration を使用して、4 文字の単語をすべて書き留めることができることを知っています。しかし、それは言葉をハードコーディングすることです。それが私の最後の選択肢です.すべての単語を入力することもできますが、ゲームをプレイすると、単語のいくつかのアイデアが得られます.

4

1 に答える 1

1

wordsリストと呼ばれる単語のリストがあると仮定します

正規表現を使用して、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 に答える