2017-01-07 6 views
-1

私のプログラムが辞書から単語をランダムに選択してテキストボックス/またはラベルに保存する単純なゲームをコーディングしようとしていますか? (この部分は確かではありません)。それから私は、ユーザーが彼の推測を入力する別のテキストボックスを持っています。ファイルからの読み取り時のC#テストボックスの操作

ここでは、ユーザーにいくつかのヒントを与えたいと思います。例: 'game'は '_ a m _'または 'g _ _ e'のようになります。私はキャラクターがどのように置かれているかを好みません。

私はランダムファイル処理方法、すべてのタイマとカウンタなどを含む前のコードをすべてプログラムしました。私はこの部分に固執しています。ファイルからランダムに単語を選択する var lines = File.ReadAllLines(@"LOCATION");
textBox3.Text = lines[new Random().Next(lines.Length)];

プログラムは、次のコードを受けます。しかし、単語全体がテキストボックス3に表示されていて、私の好きなような部分は表示されません。私はどのように進行するかについてのアイデアを完全に失っています。私はウェブ上で何か類似のものを見つけることができませんでした。

乾杯、 R

+0

こんにちは、単語内の文字を_で置換するのはどうですか? –

+0

ゲームでは、単語の文字数と同じ数のテキストボックスが必要です。プログラムの初めに、テキストボックスを動的に作成することができます(テキストボックスの数はファイルの最長単語の長さに等しくなります)。。新しい単語を取得するときは、最初のN個のボックスだけを表示するようにしてください(Nは選択された単語の長さです)。 – Graffito

+0

こんにちは@Andreiですが、私はテキストボックスで文字を_ –

答えて

1

あなたは、単語の長さに基づいて、ファイルからランダムに単語を選択すると、あなたが隠した後、ランダムにそれらの多くの文字を交換したいと思いますどのように多くの文字を決定します。以下のコードthis-

public string GetPartialWord(string word) 
    { 
     if(string.IsNullOrEmpty(word)) 
     { 
      return string.Empty; 
     } 
     char[] partialWord = word.ToCharArray(); 
     int numberOfCharsToHide = word.Length/2; 
     Random randomNumberGenerator = new Random(); 
     HashSet<int> maskedIndices = new HashSet<int>(); 
     for(int i=0;i<numberOfCharsToHide;i++) 
     { 
      int rIndex = randomNumberGenerator.Next(0, word.Length); 
      while(!maskedIndices.Add(rIndex)) 
      { 
       rIndex = randomNumberGenerator.Next(0, word.Length); 
      } 
      partialWord[rIndex] = '_'; 
     } 
     return new string(partialWord); 
    } 
+0

この問題についてあなたの考えを共有してくれてありがとう!私はこれを試し、自分のコードに合うように変更する方法を見ていきます。とても有難い。 '、および ' int型RINDEX = randomNumberGenerator.Next(0、word.Length); ' R –

+0

あなたは ' HashSetの maskedIndices =新しいHashSetの()の機能を説明してくださいだろうか? ありがとう –

+0

マスクする一意のインデックスを選択することを確認します。たとえば、最初にランダムなインデックスを生成するときに2を得たとし、次にランダムなインデックスを生成するときに2を得ると、2が既にマスクされているので別の時間を生成したいとします。ハッシュセットはこれを達成するのに役立ちます。 – Tulasiram

1

よう

何かがアンダースコアで文字の少なくとも半分を交換します。このコードでは、単語の半分以上がアンダースコアに置き換えられるまで、単語を取り、乱数を生成し続けます。

+0

あなたの提案をありがとう。ランダムに生成された単語を使って実装します! R –

+0

@UnknownR例として単語を1つだけ使用しています。アイデアはあなたがそれに何か言葉を渡すことができ、それはあなたが尋ねたことをするでしょう。 – CodingYoshi

+0

@UnknownRこのコードは、文字の少なくとも半分が常に下線を引くことを保証しています。あなたがそれを "快適"に送るなら、それは決して "_心が痛い"などを返さないでしょう。 – CodingYoshi

関連する問題