Come faccio a lanciare i dadi in C #?

Questa applicazione utilizza un'istanza di Casuale() classe nell'oggetto rnd. Alloca anche spazio sufficiente per contenere i totali per i punteggi 3 ... 18 nella matrice Rotoli[]. Funzioni membro OneDice () restituisce un valore compreso tra 1 e 6 - rnd.Next (n) restituisce valori nell'intervallo 0… n-1, mentre ThreeDice () chiamate OneDice () tre volte. Il costruttore per il RollDice () cancella il rotoli array quindi chiama ThreeDice () tuttavia molte volte (10 milioni in questo caso) e incrementa l'appropriato Rotoli[] elemento.

L'ultima parte è stampare i totali generati per vedere che genera tiri in conformità con le probabilità. Un dado a 6 facce ha un punteggio medio di 3,5, quindi tre dadi dovrebbero avere una media di circa 10,5. I totali per 10 e 11 sono più o meno gli stessi e si verificano circa il 12,5% delle volte.

Ecco l'output di una corsa tipica. Non ci vuole più di un secondo. Perché è un'applicazione console, ho incluso a

 Console.ReadKey (); 

Attendere fino a quando non si preme un tasto prima di chiudere.

Uscita del programma

 3 46665
4 138772
5 277440
6 463142
7 693788
8 971653
9 1157160
10 1249360
11 1249908
12 1159074
13 972273
14 695286
15 463270
16 277137
17 138633
18 46439

Elenco del programma

 utilizzando il sistema;
utilizzando System.Collections.Generic;
utilizzando System.Text;
namespace exrand

    RollDice di classe pubblica
    
        private Random = new Random ();
        private int [] Rolls = new int [19]; // Contiene da 3 a 18
        public int OneDice ()
            return rnd.Next (6) +1;
        
        public int ThreeDice ()
        
            restituisce OneDice () + OneDice () + OneDice ();
        
        public RollDice (int Count)
        
            int i = 0;
            per (i = 3; i