C# 骰子循环,加上不同的骰子

C# 骰子循环,加上不同的骰子,c#,dice,C#,Dice,我怎样才能显示每个球员在每轮结束时的得分?(我把每名球员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, en

我怎样才能显示每个球员在每轮结束时的得分?(我把每名球员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();
Console.WriteLine(“玩家1,输入你的名字”);
PlayerOne=Console.ReadLine();
Console.WriteLine(“玩家2,输入你的名字”);
PlayerTwo=Console.ReadLine();
Console.WriteLine(“玩家3,输入你的名字”);
PlayerThree=Console.ReadLine();
控制台.WriteLine(“玩家4,输入你的名字”);
PlayerFour=Console.ReadLine();
随机骰子随机=新随机();
int DiceThrow=DiceRandom.Next(1,7);
控制台。写线(掷骰子);
Console.ReadLine();

对于(int i=1;i你有什么东西可以保存玩家获得的值吗?一些简单的东西,比如
player1Score
player2Score
等等

在for循环中还有一个if语句
(如果i==1){player1Score=player1Score+DiceThrow})
etc会创造奇迹。

这里有一个小例子说明如何做,稍微好一点。里面有很多你可能还不知道的东西。我给你答案的原因是为了给你提供足够的新东西,让你自己去看看

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();
}
Random dice Random=new Random();
var分数=新整数[4];
对于(int i=0;i<4;i++)
{
做
{
var roll=diceRandom.Next(1,7);
Console.WriteLine(“玩家”+(i+1)+“掷”+骰);
Console.ReadLine();
如果(滚动!=6)
分数[i]+=滚动;
}而(滚动=6);
}
//结果
对于(int i=0;i<4;i++)
{
WriteLine(String.Format(“玩家{0}得分{1}”,i,得分[i]);
Console.ReadLine();
}
简单总结一下:

  • 修改循环计数器通常是不好的做法,应该避免,因此我使用嵌套的do/while循环
  • 我使用数组存储每个玩家的分数,数组本身包含4个整数,每个玩家的分数对应一个整数。这使得对它进行迭代变得非常简单
  • 前一点是for循环通常从0开始而不是从1开始的主要原因之一,因为数组中的第一个索引是[0],因此具有4个元素的数组具有索引0、1、2、3。记住这一点很重要
  • 在结果部分,我使用了字符串类中名为
    Format
    的方法,在该方法中,您可以使用完整的文本并添加占位符,以便用变量的值填充占位符。{0}是第一个参数,{1}是第二个参数,依此类推

您似乎没有理解关于此主题的上一个问题的答案。顺便说一句,我不确定我是否同意这种逐步完成作业的方法。为什么我没有这样的作业:(只有唱歌、鼓掌和跳舞你的名字…不管怎样,你的比赛分数到底是多少?每个球员所有的投掷次数之和?那就去做吧。你知道变量是什么,至少我希望老师告诉你,把每次投掷的值加到分数变量中应该不会太难。事实上,这不是家庭作业act,我刚刚开始编码和胡闹。由于上次的答案非常有用,我想我“再问一次”。@doforwhile,分数是每一个玩家在每一轮中掷出的分数相加。假设玩家1掷2,玩家2掷3,玩家3掷4,玩家4掷5,他们的分数将是2,3,4和5。但是我希望分数相加在每轮结束时显示。@user1890490这就是我评论的意思。问问自己,我需要什么信息(你已经知道了),什么时候知道(你什么时候有新的投掷值),现在您需要一个位置来存储它并将其添加到旧值中。您知道变量是什么,现在可能是学习的好时机。因为有了数组,整个过程变得容易多了。