2016-11-20 37 views
-1

不同的隨機數在我的節目,我有2類以下代碼:如何生成具有相同功能的C#

Random Rand = new Random(); 
     _x = (Rand.Next (0, 31)); 
     _y = (Rand.Next (0, 23)); 

程序運行時的問題。兩個類都生成完全相同的數字。我如何以兩種座標(_x & _y)生成不同的方式對其進行編碼,以便我可以擁有兩個不同的座標?

我在Xamarin Studio中使用C#。

+0

重複使用相同的隨機實例。 – gdoron

+0

幾乎在同一時間創建了兩個不同的類嗎?幾乎同時? –

回答

0

你需要確保這兩個類與Random不同的種子instantianted。如果兩個類實例化在一起,那麼時鐘可能沒有移動到下一個刻度並且它們都獲得相同的種子。你需要確保兩個類別獲得不同的種子。要做到這一點

一種方法是使用一個主Random生成種子的其他兩個實例:

Random masterRandom = new Random((int)DateTime.Now.Ticks); 
Random r1 = new Random(masterRandom.Next(0, 100000)); 
Random r2 = new Random(masterRandom.Next(0, 100000)); 

由於時鐘只調用一次,還有兩次調合在一起,沒有問題。 Random的其他實例從masterRandom獲取種子,而不是時鐘。

相關問題