-8

私は絞首刑執行人ゲームをやっていて、ユーザーが推測しなければならない新しい単語を生成するランダム単語を作成し始めましたが、ランダムコードは以前に使用されたのと同じ単語を生成することがあります。私の質問は...乱数が等しくないかどうかを示すシンボルまたはコードはありますか...このコードブロックを実行してください。

これが私のコードです...

private void button1_Click(object sender, EventArgs e)
    {
        Random rW = new Random();

        foreach (TextBox textBox in addTextBox())
        {
            textBox.Visible = false;
        }

        RW = rW.Next(1, 4);

        if (RW == 1) //Cat
        {
            textBox1.Visible = true;
            textBox2.Visible = true;
            textBox3.Visible = true;

        }
        else if (RW == 2) //Elephant
        {
            textBox1.Visible = true;
            textBox2.Visible = true;
            textBox3.Visible = true;
            textBox4.Visible = true;
            textBox5.Visible = true;
            textBox6.Visible = true;
            textBox7.Visible = true;
            textBox8.Visible = true;
        }
        else if (RW == 3) //Giraffe
        {
            textBox1.Visible = true;
            textBox2.Visible = true;
            textBox3.Visible = true;
            textBox4.Visible = true;
            textBox5.Visible = true;
            textBox6.Visible = true;
            textBox7.Visible = true;
        }
        else if (RW == 4) //Monkey
        {
            textBox1.Visible = true;
            textBox2.Visible = true;
            textBox3.Visible = true;
            textBox4.Visible = true;
            textBox5.Visible = true;
            textBox6.Visible = true;
        }
        else
        {
        }
    }
4

2 に答える 2

5

等式演算子!=であるwhichを使用する必要があります。

于 2013-01-28T02:56:13.963 に答える
1

一般的なリストを使用し、単語が生成されたら、それをリストに追加します。次に、生成された単語が使用済み単語リストに含まれなくなるまで、新しい単語を生成します。また、if / elseifステートメントの場合は、代わりにswitchステートメントを使用すると、読みやすくなります。

また、usedWordsコレクションがボタンイベントハンドラーの外部にあり、内部で宣言されていないことを確認してください。そうでない場合、ボタンをクリックするたびにリセットされます。

リストusedWords=new List();

private void button1_Click(object sender、EventArgs e){Random rW = new Random();

    foreach (TextBox textBox in addTextBox())
    {
        textBox.Visible = false;
    }

    RW = rW.Next(1, 4);

    while(usedWords.Contains(RW))
{
    RW = rW.Next(1,4);
}

usedWords.Add(RW);


    if (RW == 1) //Cat
    {
        textBox1.Visible = true;
        textBox2.Visible = true;
        textBox3.Visible = true;

    }
    else if (RW == 2) //Elephant
    {
        textBox1.Visible = true;
        textBox2.Visible = true;
        textBox3.Visible = true;
        textBox4.Visible = true;
        textBox5.Visible = true;
        textBox6.Visible = true;
        textBox7.Visible = true;
        textBox8.Visible = true;
    }
    else if (RW == 3) //Giraffe
    {
        textBox1.Visible = true;
        textBox2.Visible = true;
        textBox3.Visible = true;
        textBox4.Visible = true;
        textBox5.Visible = true;
        textBox6.Visible = true;
        textBox7.Visible = true;
    }
    else if (RW == 4) //Monkey
    {
        textBox1.Visible = true;
        textBox2.Visible = true;
        textBox3.Visible = true;
        textBox4.Visible = true;
        textBox5.Visible = true;
        textBox6.Visible = true;
    }
    else
    {
    }
}
于 2013-01-28T03:00:45.590 に答える