Consejos

¿Cómo ruedo dados en C #?

¿Cómo ruedo dados en C #?

Esta aplicación utiliza una instancia de la Aleatorio() clase en el objeto rnd. También asigna suficiente espacio para contener los totales de las puntuaciones 3 ... 18 en la matriz Rollos. Funciones miembro OneDice () devuelve un valor entre 1 y 6 - rnd.Next (n) devuelve valores en el rango 0 ... n-1, mientras que ThreeDice () llamadas OneDice () tres veces. El constructor para el Tirar el dado() despeja el Rollos matriz luego llama ThreeDice () Sin embargo, muchas veces (10 millones en este caso) e incrementa el apropiado Rollos elemento.

La última parte es imprimir los totales generados para ver que genera lanzamientos de acuerdo con las probabilidades. Un dado de 6 lados tiene un puntaje promedio de 3.5, por lo que tres dados deben promediar aproximadamente 10.5. Los totales para 10 y 11 son aproximadamente los mismos y ocurren aproximadamente el 12.5% ​​del tiempo.

Aquí está el resultado de una ejecución típica. No lleva más de un segundo. Debido a que es una aplicación de consola, incluí un

Console.ReadKey ();

Para esperar hasta presionar una tecla antes de cerrar.

Programa de salida

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

Listado de programa

utilizando el sistema;
usando System.Collections.Generic;
usando System.Text;
espacio de nombres exrand
{
clase pública RollDice
    {
Private Random rnd = new Random ();
Rollos int privados = nuevo int19; // Tiene de 3 a 18
public int OneDice () {
retorno rnd. Siguiente (6) +1;
        }
public int ThreeDice ()
        {
volver OneDice () + OneDice () + OneDice ();
        }
RollDice público (int Count)
        {
int i = 0;
para (i = 3; i