在我的.NET遊戲中,我的rand函數正在確定玩家每個角色應該承受多少傷害,然而第一個角色似乎總是處於底部,最後一個在頂部。因此,在我的Character[0]
中,傷害很少會比最小蘭幣值多1以上,並且對於較高指數的每個Character
,所造成的傷害只會隨着比例較高而隨機化。隨機數表現怪異,不完全隨機
public int GetDamage(int low, int high)
{
Random r = new Random();
int rand = r.Next(low, high);
return rand;
}
這是我使用的隨機函數發生器。然後,我更新離開這樣的健康:
int Damage = GetDamage(3, 10);
Characters[Target].Health = Characters[Target].Health - Damage;
在這個例子中傷害劃分是這樣的:
Number 1: 3-4
Number 2: 4-6
Number 3: 5-7
Number 4: 7-8
Number 5: 8-9
真的嗎?一個非種子隨機發生器不是真的隨機? – 2013-04-11 12:59:27
@ThorstenDittmar它在技術上是種子,只是'很糟糕'。 – 2013-04-11 13:01:09
相關:http://stackoverflow.com/questions/1785744/how-do-i-seed-a-random-class-to-avoid-getting-duplicate-random-values – Carsten 2013-04-11 13:02:36