none
Problème d'aléatoire

    Discussion générale

  • J'ai pour mes cours, besoin de faire un programme capable de faire les statistiques d'apparition des sommes de deux dés lancés à un certains nombre de fois. J'aimerais que quelqu'un puisse jeter un coup d’œil à mon code et me dire ce qu'il ne joue pas. J'utilise visual studio pour coder en c# et j'ai utiliser le pas à pas, et j'ai pu remarquer que à chaque boucle que font mes instruction d'aléatoire sur les lancer de dés, ça fait toujours + 1 et je ne vois pas d'où peut venir le problème. Merci d'avance

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    
    namespace X_403_perretje_RandomDice
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Déclarations//
    
                const string TITLE = "Probabilités d'apparition des sommes obtneus en lançant 2 dés";
                const string TITLE2 = "-------------------------------------------------------------";
                int intRollingDicesChoice;
                Random RollingDice = new Random();
                Random RollingDice2 = new Random();
                int intDice1;
                int intDice2;
                int intSumDices = 0;
                const int NBSUMPOSSIBLE = 11;
                int[] tab_StatRollsDice = new int[NBSUMPOSSIBLE];
                string strEndAnswer;
                bool boolEndQuestion = true;
    
                //Programme principal//
                do
                {
                    Console.Clear();
                    for (int i = 0; i < NBSUMPOSSIBLE; i++)
                    {
                        tab_StatRollsDice[i] = 0;
                    }
    
                    Console.WriteLine(TITLE);
                    Console.WriteLine(TITLE2);
    
                    Console.Write("\nCombien de fois faut-il lancer les dés = <20 ... 400>: ");
                    intRollingDicesChoice = Convert.ToInt32(Console.ReadLine());
    
                    if (intRollingDicesChoice >= 20 && intRollingDicesChoice <= 400)
                    {
                        for (int i = 0; i < intRollingDicesChoice; i++)
                        {
                            intDice1 = RollingDice.Next(1, 7);
                            intDice2 = RollingDice2.Next(1, 7);
                            intSumDices = intDice1 + intDice2;
    
                            tab_StatRollsDice[intSumDices - 2] += 1;
                        }
    
                        Console.WriteLine("Histrogramme horizontal des " + intRollingDicesChoice + " obtenues");
    
                        for (int i = 0; i < NBSUMPOSSIBLE; i++)
                        {
                            int k = i + 2;
                            Console.Write("\n" + k + "\t");
                            Console.Write(tab_StatRollsDice[i] + "\t");
                            for (int j = 0; j < tab_StatRollsDice[i]; j++)
                            {
                                Console.Write('*');
                            }
                        }
                        Console.Write("\nVoulez-vous recommencer ? <o ... n> ");
                        strEndAnswer = Console.ReadLine();
                        strEndAnswer = strEndAnswer.ToUpper();
    
    
                        if (strEndAnswer.Length < 2)
                        {
                            if (strEndAnswer == "O")
                            {
                                boolEndQuestion = true;
                            }
                            else
                            {
                                boolEndQuestion = false;
                            }
                        }
                        else
                        {
                            Console.WriteLine("Vous avez entrez trop de caractères veuillez recommencer !!");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Choix incompri entre 20 et 400");
                        boolEndQuestion = false;
                    }
                }
                while (boolEndQuestion == true);
                Console.ReadLine();
            }
        }
    }
    
    Merci beaucoup de m'aider ;)

    samedi 18 février 2017 12:24