我在做一個簡單的遊戲來提高我的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