我在做一个简单的游戏来提高我的C#技能。我阅读了Random()类以及它如何从datetime生成种子,并找到了如何从一个实例获取伪随机生成器的一些结果。C#多个实例的随机种子生成器
Player类:
Random dice = new Random();
public int RollDice()
{
int dice1 = dice.Next(1, 7);
int dice2 = dice.Next(1, 7);
int sum = dice1 + dice2;
Console.WriteLine("D1: " + dice1 + " D2: " + dice2 + " SUM: " + sum);
return sum;
}
主营:
//infiniteloop{
player1.RollDice();
Console.ReadKey();
player2.RollDice();
}
输出后,不再是我等待多长时间按下键,重新调用player2.DiceRoll(),它还是会滚相同的数字。如果我只有一名球员,那么效果很好。我该如何改进?
你可能想让'dice'变成静态的。我猜你快速连续创建了'player1'和'player2',并且他们获得了相同的种子。 – juharr