我有一個代表硬幣的類,可以用Coin.Flip()方法翻轉。 Flip()使用random.Next(2);得到0或1代表正面或反面。這工作很好..有點。C#的問題隨機類
對於該程序,我需要有2個硬幣,我可以說讓coin1和coin2。
COIN2總是需要COIN1後直奔翻轉,我可以用做:
coin1.Flip();
coin2.Flip();
這應該工作,對不對?
那好吧!每次運行這兩行代碼時,兩個硬幣的結果都相同!
面值存儲在臉上幣類,它是這樣定義裏面:
private int face;
我看不出有什麼毛病我都幹了些什麼,但每一次我運行代碼,它們最終完全相同。
哦也,隨機在硬幣類中定義的,以及像這樣:
private Random random = new Random();
感謝您的幫助!
編輯:這裏的翻轉(),它的工作原理是,隨機是靜態的。
public void Flip() {
face = random.Next(2);
}
你能展示Flip的實現嗎? – 2010-09-25 01:21:55
注意:如果它是靜態的,你應該同步它,或者使它具體線程,因爲它沒有被列爲線程安全 – 2010-09-25 06:59:41