-1

各ラウンドの最後に各プレイヤーが投げたスコアを表示するにはどうすればよいですか? (1ラウンドを1人1投としています)

ちなみに、プレーヤーが 6 を投げると、もう一度ロールします。

Console.WriteLine("Player 1, enter your name");
PlayerOne = Console.ReadLine();
Console.WriteLine("Player 2, enter your name");
PlayerTwo = Console.ReadLine();
Console.WriteLine("Player 3, enter your name");
PlayerThree = Console.ReadLine();
Console.WriteLine("Player 4, enter your name");
PlayerFour = Console.ReadLine();

Random DiceRandom = new Random();
int DiceThrow = DiceRandom.Next(1, 7);
Console.WriteLine(DiceThrow);
Console.ReadLine();


for (int i = 1; i <= 4; i++)
{
    DiceThrow = DiceRandom.Next(1, 7);
    Console.WriteLine("Player " + i + " rolled a " + DiceThrow);
    Console.ReadLine();
    if (DiceThrow == 6) i--;
}

Console.WriteLine("Player 1 rolled a " + DiceThrow);
Console.ReadLine();

Console.WriteLine("Player 2 rolled a " + DiceThrow);
Console.ReadLine();

Console.WriteLine("Player 3 rolled a " + DiceThrow);
Console.ReadLine();

Console.WriteLine("Player 4 rolled a " + DiceThrow);
Console.ReadLine();
4

2 に答える 2

0

さて、これはそれを行う方法の小さな例です。少し良いです。おそらくまだ知らないことがたくさんあります。私があなたに答えを与える理由は、あなた自身でそれをチェックするのに十分な新しいものを提供するためです.

Random diceRandom = new Random();
var scores = new int[4];
for (int i = 0; i < 4; i++)
{
    do
    {
        var roll = diceRandom.Next(1, 7);
        Console.WriteLine("Player " + (i + 1) + " rolled a " + roll);
        Console.ReadLine();
        if(roll != 6)
            score[i] += roll;
    }while(roll == 6);
}

// results
for(int i = 0; i < 4; i++)
{
    Console.WriteLine(String.Format("Player {0} scored {1}", i, scores[i]));
    Console.ReadLine();
}

簡単なまとめ:

  • 通常、ループ カウンターを変更することは悪い習慣であり、回避する必要があるため、代わりにネストされた do/while ループを使用します。
  • 配列を使用して各プレイヤーのスコアを保存します。配列自体には、プレイヤーのスコアごとに 1 つずつ、4 つの int が保持されます。これにより、反復処理が非常に簡単になります。
  • 前のポイントは、for ループが通常 1 ではなく 0 で開始される主な理由の 1 つです。これは、配列の最初のインデックスが [0] であるため、4 つの要素を持つ配列のインデックスは 0、1、2、3 になるためです。これは覚えておくことが重要です。
  • Format結果の部分では、完全なテキストを使用して変数の値を入力するプレースホルダーを追加できる、String クラスのメソッドを使用しました。{0} は最初のパラメーター、{1} は 2 番目のパラメーターなどです。
于 2012-12-10T15:15:09.220 に答える
0

プレイヤーが得ている価値を保持するものはありますか? などplayer1Scoreの簡単なもの。player2Score

(if i==1){player1Score = player1Score + DiceThrow})また、 etcを要求する for ループ内の if ステートメント も驚くべきことです。

于 2012-12-10T10:22:39.523 に答える