I'm writing a program where the user gets to pick a number of dice to be rolled and it then calculates the average of the dice rolls. Everything works as it should but the dice rolls are all identical instead of new numbers. How do I fix this AND return them all? It is the first method that should be the problem.
Thanks
static int RullaTärning(Random slumpObjekt)
{
Random slump = new Random();
int slumpa = slump.Next(1, 6);
return slumpa;
}
static void Main()
{
Random slump = new Random();
List<int> tärningar = new List<int>();
Console.WriteLine("\n\tVälkommen till tärningsgeneratorn!");
bool kör = true;
while (kör)
{
Console.WriteLine("\n\t[1] Rulla tärning\n" +
"\t[2] Kolla vad du rullade\n" +
"\t[3] Avsluta");
Console.Write("\tVälj: ");
int val;
int.TryParse(Console.ReadLine(), out val);
switch (val)
{
case 1:
Console.Write("\n\tHur många tärningar vill du rulla: ");
bool inmatning = int.TryParse(Console.ReadLine(), out int antal);
if (inmatning)
{
for (int i = 0; i < antal; i++)
{
tärningar.Add(RullaTärning(slump));
}
}
break;
case 2:
int sum = tärningar.Sum() / tärningar.Count;
if (tärningar.Count <= 0)
{
Console.WriteLine("\n\tDet finns inga sparade tärningsrull! ");
}
else
{
Console.WriteLine("\n\tRullade tärningar: ");
foreach (int tärning in tärningar)
{
Console.WriteLine("\t" + tärning);
}
Console.WriteLine("\n\tMedelvärdet på alla tärningsrull: " + sum);
}
break;
case 3:
Console.WriteLine("\n\tTack för att du rullade tärning!");
Thread.Sleep(1000);
kör = false;
break;
default:
Console.WriteLine("\n\tVälj 1-3 från menyn.");
break;
}
}
}
}
}