Hoe gooi ik dobbelstenen in C #?

Deze applicatie gebruikt een exemplaar van de Willekeurig() klasse in het object rnd. Er wordt ook voldoende ruimte toegewezen om de totalen voor scores 3 ... 18 in de array te houden Rollen[]. Lid functies OneDice () geeft een waarde terug tussen 1 en 6 - rnd.Next (n) geeft waarden terug in het bereik 0 ... n-1, terwijl ThreeDice () calls OneDice () drie keer. De constructeur voor de RollDice () wist de Rollen array roept vervolgens ThreeDice () echter vele malen (in dit geval 10 miljoen) en wordt het juiste verhoogd Rollen[] element.

Het laatste deel is het afdrukken van de gegenereerde totalen om te zien dat het worpen genereert in overeenstemming met de waarschijnlijkheden. Een 6-zijdige dobbelsteen heeft een gemiddelde score van 3,5, dus drie dobbelstenen moeten gemiddeld ongeveer 10,5 zijn. De totalen voor 10 en 11 zijn ongeveer hetzelfde en komen ongeveer 12,5% van de tijd voor.

Hier is de uitvoer van een typische run. Het duurt niet langer dan een seconde. Omdat het een consoletoepassing is, heb ik een

 Console.ReadKey (); 

Wachten tot je een toets raakt voordat je sluit.

Programma-uitgang

 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

Programmaoverzicht

 het gebruik van systeem;
met behulp van System.Collections.Generic;
met behulp van System.Text;
naamruimte exrand

    openbare klasse RollDice
    
        privé Willekeurig rnd = nieuw Random ();
        private int [] Rolls = new int [19]; // Ruimte voor 3 tot 18
        public int OneDice ()
            retourneer rnd.Volgende (6) +1;
        
        public int ThreeDice ()
        
            retourneer OneDice () + OneDice () + OneDice ();
        
        public RollDice (int Count)
        
            int i = 0;
            voor (i = 3; i