-1

ランダムに生成された 5 つの数字が同じかどうかをテストする方法がわかりません。私がこれまで持っているのは、それらの作成だけです。

dice1 = rand.Next(1,7);

dice2 = rand.Next(1,7);

dice3 = rand.Next(1,7);

dice4 = rand.Next(1,7);

dice5 = rand.Next(1,7);
4

8 に答える 8

1

私の最初の答えで編集された、脳のおなら。

簡単に入れ子にできる場合は、次のようにします。

if ((dice1 == dice2)&&(dice2 == dice3)&&(dice3 == dice4)&&(dice4 == dice5))

これはうまくいくはずです

于 2013-05-06T22:10:09.523 に答える
1
if(dice1 == dice2)
    if(dice2 == dice3)
        if(dice3 == dice4)
            if(dice4 == dice5)
                //do something...

よりきれいな方法かもしれませんが、これはうまくいきます

于 2013-05-06T22:10:46.913 に答える
0

まず、サイコロを数えられるものにすることをお勧めします。PSWG はそれを行うための非常にエレガントな方法を投稿しました。これは私の心が行ったところです:

        var dice = new List<int>();
        for (int i = 0; i < 5; i++)
        {
            dice.Add(rand.Next(1, 7));
        }

次に、単純な評価を使用して、コレクション内のすべての数値が同じかどうかを判断できます。私はこれが好き:

        // if all the dice rolled the same, do something
        if (dice.Distinct().Count() == 1)
        {

        }
于 2013-05-06T23:38:54.287 に答える
0

次のような方法を使用できます。

public static bool AllEqual(params int[] values)
{
    foreach (var value in values)
        if (values[0] != value)
            return false;
    return true;
}

そして、次のように使用します。

bool allSame = AllEqual(dice1, dice2, dice3, dice4, dice5);

しかし、pswg が示したように、すべてのサイコロを 1 つの列挙可能な要素で生成する方がおそらく優れています。

于 2013-05-06T22:27:22.180 に答える