2016-06-12 7 views
-2

Ich bin nicht so begabt wie einige und nach dem Durchschauen der Beispiele hier kann ich nicht herausfinden, warum ich die gleiche Anzahl jeder Satz von Rollen bekommen . Ich dachte, ich verwende nur 1 Instanz wie gesagt in den Foren. Kann mich bitte jemand korrigieren?Zufallszahl die gleiche auch dachte ich bin sicher, ich verwende 1 Instanz wie erforderlich

static void Main(string[] args) 
{ 
    Console.WriteLine("Hi choose a type of dice to throw"); 
    int dice = Convert.ToInt16(Console.ReadLine()); 

    Console.WriteLine("Now how many of that dice to throw"); 
    int numberOfDice = Convert.ToInt16(Console.ReadLine()); 

    Console.WriteLine("Now how many times to reroll"); 
    int rerolls = Convert.ToInt16(Console.ReadLine()); 


    for (int i = 1; i <= rerolls; i++) 
    { 
     int result = diceThrower(numberOfDice, dice); 

     Console.WriteLine("\nRoll #{0} is {1}",i, result); 

    } 
    Console.ReadLine(); 

} 

private static int diceThrower(int numberOfDice, int sideOfDice) 
{ 
    Random rnd = new Random(); 
    int diceResult = 0; 
    int diceRoll; 

    for (int i = 1; i < numberOfDice; i++) 
    { 
     diceRoll = rnd.Next(1, sideOfDice + 1); 
     diceResult = diceResult + diceRoll; 
    } 

    return diceResult; 

} 
+2

Nein, Sie nicht nur eine Instanz verwenden, erstellen Sie viele und so schnell, dass sie immer noch zur gleichen Zeit wie Samen. Verwenden Sie eine Zufallsinstanz als Klassenvariable! – TaW

Antwort

1

das RND-Objekt in der Main-Methode erstellen und das als Argument an die Funktion diceThrower passiert in

Verwandte Themen