Why all my randoms are the same? [Answered]
so there is the code and the outputs why are they the same and how to change it?
Random every time. consider keeping around the Random instance and just re-using it instead of newing it up every time.Random and use that instead of creating a new oneMath.Round you're not getting an even distribution of valuesRandom.Shared[button1, ArmorPenetration: 38.72
BonusHitRate 322.56
BonusBasicDmg: 969.92
BonusCritChance: 12.8
StunChance: 3.2
ElementalDmg: 492.16
BonusDmg: 25.92
HighLvlMonsterDmg: 54.72
LowLvlMonsterDmg: 45.12];
[button2, ArmorPenetration: 38.72
BonusHitRate 322.56
BonusBasicDmg: 969.92
BonusCritChance: 12.8
StunChance: 3.2
ElementalDmg: 492.16
BonusDmg: 25.92
HighLvlMonsterDmg: 54.72
LowLvlMonsterDmg: 45.12];
[button3, ArmorPenetration: 38.72
BonusHitRate 322.56
BonusBasicDmg: 969.92
BonusCritChance: 12.8
StunChance: 3.2
ElementalDmg: 492.16
BonusDmg: 25.92
HighLvlMonsterDmg: 54.72
LowLvlMonsterDmg: 45.12];
[button4, ArmorPenetration: 38.72
BonusHitRate 322.56
BonusBasicDmg: 969.92
BonusCritChance: 12.8
StunChance: 3.2
ElementalDmg: 492.16
BonusDmg: 25.92
HighLvlMonsterDmg: 54.72
LowLvlMonsterDmg: 45.12];
[button5, ArmorPenetration: 38.72
BonusHitRate 322.56
BonusBasicDmg: 969.92
BonusCritChance: 12.8
StunChance: 3.2
ElementalDmg: 492.16
BonusDmg: 25.92
HighLvlMonsterDmg: 54.72
LowLvlMonsterDmg: 45.12]RandomRandomRandomMath.RoundRandom.Sharedprivate static double GetRandomNumber(double minimum, double maximum)
{
Random random = new();
return random.NextDouble() * (maximum - minimum) + minimum;
} public static void CreateInstance()
{
string strSeperator = ";";
StringBuilder sbOutput = new();
_ = new Random();
double x = SharedClass.RarityLvlValue.Rarity * 0.4;
for (var i = 1; i <= 5; i++)
{
RarityBonus["button" + i] = new RarityStats(
armorPen: Math.Round(GetRandomNumber(12, 22), 1) * x,
hitRate: Math.Round(GetRandomNumber(100, 250), 1) * x,
basicDmg: Math.Round(GetRandomNumber(300, 900), 1) * x,
critChance: Math.Round(GetRandomNumber(4, 11), 1) * x,
stunChance: Math.Round(GetRandomNumber(1, 4), 1) * x,
elementalDmg: Math.Round(GetRandomNumber(150, 900), 1) * x,
dmg: Math.Round(GetRandomNumber(8, 18), 1) * x,
highMonster: Math.Round(GetRandomNumber(17, 29), 1) * x,
lowMonster: Math.Round(GetRandomNumber(14, 32), 1) * x);
}
sbOutput.AppendLine(string.Join(strSeperator, RarityBonus));
File.AppendAllText(@"C:\Users\Admin\Desktop\WiT\Semestr 4\Solutions\SimulatorApk\dictRarity.txt", sbOutput.ToString());
}[button1, Dmg: 232 - 814
HitRate: 102
CritChance: 13
CritDmg: 304
Rarity: 1
Upgrade Lvl: 0];
[button2, Dmg: 562 - 1942
HitRate: 425
CritChance: 8
CritDmg: 356
Rarity: 7
Upgrade Lvl: 0];
[button3, Dmg: 1380 - 1989
HitRate: 1001
CritChance: 11
CritDmg: 437
Rarity: 0
Upgrade Lvl: 0];
[button4, Dmg: 1751 - 2259
HitRate: 893
CritChance: 16
CritDmg: 423
Rarity: 3
Upgrade Lvl: 0];
[button5, Dmg: 2405 - 3041
HitRate: 554
CritChance: 11
CritDmg: 273
Rarity: 6
Upgrade Lvl: 0]private static Random Random()
{
Random random = new();
return random;
}