Wie würfele ich in C #?

Diese Anwendung verwendet eine Instanz von Zufällig() Klasse im Objekt rnd. Außerdem wird genügend Speicherplatz zugewiesen, um die Gesamtsummen für die Punkte 3 bis 18 im Array aufzunehmen Rollen[]. Mitglied Funktionen OneDice () gibt einen Wert zwischen 1 und 6 zurück - rnd.Next (n) gibt Werte im Bereich von 0… n-1 zurück, während ThreeDice () Anrufe OneDice () drei Mal. Der Konstruktor für die Würfeln() löscht die Rollen Array ruft dann auf ThreeDice () aber oft (10 Millionen in diesem Fall) und erhöht die entsprechende Rollen[] Element.

Der letzte Teil besteht darin, die generierten Summen auszudrucken, um zu sehen, dass sie gemäß den Wahrscheinlichkeiten Würfe erzeugen. Ein 6-seitiger Würfel hat eine durchschnittliche Punktzahl von 3,5, drei Würfel sollten also durchschnittlich etwa 10,5 sein. Die Summen für 10 und 11 sind ungefähr gleich und treten in etwa 12,5% der Fälle auf.

Hier ist die Ausgabe eines typischen Laufs. Es dauert nicht länger als eine Sekunde. Da es sich um eine Konsolenanwendung handelt, habe ich eine

 Console.ReadKey (); 

Warten, bis Sie eine Taste drücken, bevor Sie schließen.

Programmausgabe

 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

Programmliste

 using System;
using System.Collections.Generic;
using System.Text;
Namespace exrand

    öffentliche Klasse RollDice
    
        private Random rnd = new Random ();
        private int [] Rolls = new int [19]; // Hält 3 bis 18
        public int OneDice ()
            return rnd.Next (6) +1;
        
        public int ThreeDice ()
        
            return OneDice () + OneDice () + OneDice ();
        
        public RollDice (int Count)
        
            int i = 0;
            für (i = 3; i