434,677 Members | 1,136 Online + Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,677 IT Pros & Developers. It's quick & easy.

Working on a dice Game in C++

 P: 3 Hello all, I am working on a dice game for my homework in a c++ class. I am suppose to calculate the odds and probability of 2 dice rolls x amount of times and list the probability as rand() error. I have most of the program done but my problem is I can't figure out how to calculate odds and probability for multiple rolls. any suggestions or help would be appreciated thank you -Josh Ibrahim Expand|Select|Wrap|Line Numbers  //Author: Josh Ibrahim, This program takes the user input for number of rolls and simulates the odds/error of two dice rolls    #include   #include   #include     using namespace std;    int getRoll ();    void displayTotals (int maxRoll,int numberOfRolls);    int main( )  {  //sets the seed for the random number  srand(time(0));    //variables to store user input and dice rolls  int  numberOfRolls;  int maxRoll = 0;      int loop = 1;      cout << "This program rolls two dice and tabulates the results.\n";    while (loop != 0)  {      //ask the user how many rolls of the dice to computer  cout << "\nEnter Number of Rolls: ";  cin >>  numberOfRolls;      cout<<"\nSum   #Rolled      Odds   %Error";    //for loop calculates odds and %error displayTotals (maxRoll,numberOfRolls);        cout << "\nTry again? (1 = Yes, 0 = Exit)";  cin >> loop;   }      return 0;    }        //function takes @numberOfRolls and then calculates possible dice rolls with @maxRoll and displays the outcome. Calls @getRoll  void displayTotals (int maxRoll,int numberOfRolls) {    //counters for each dice roll  int countRoll2 = 0, countRoll3 = 0,countRoll4 = 0,countRoll5 = 0,countRoll6 = 0,countRoll7 = 0;  int countRoll8 = 0,countRoll9 = 0,countRoll10 = 0,countRoll11= 0,countRoll12= 0;       //calculates dice rolll using a switch   for ( int i = 0; i < numberOfRolls; i++)   {     //maxRoll calls get roll twice to grab a psuedorandom number between 2-12        maxRoll = getRoll()+ getRoll();     //switch statement counts everytime the "dice" land on a number       switch (maxRoll)       {       case 2:  countRoll2++;       break;           case 3:  countRoll3++;       break;           case 4:   countRoll4++;       break;           case 5:   countRoll5++;       break;           case 6:  countRoll6++;       break;           case 7:  countRoll7++;       break;           case 8:  countRoll8++;       break;           case 9:  countRoll9++;       break;       case 10:  countRoll10++;       break;       case 11:  countRoll11++;       break;       case 12:  countRoll12++;       break;       }     }   //displays results in order: number of times rolled, odds, %error   //odds are calculated by: number of total outcomes - total number of unfavorable outcomes //error is calculated like probabilities:  number of unfavorableoutcomes/totalnumberofoutcomes  cout <<"\n2:    " << countRoll2<<"             "<< (36) - (35)<<"       "<< (RAND_MAX - 2)/ static_cast < double > (numberOfRolls);  cout <<"\n3:    " << countRoll3<<"             "<<(36) -  (34)<<"       "<< (RAND_MAX - 3)/ static_cast < double > (numberOfRolls;  cout <<"\n4:    " << countRoll4<<"             "<<(36) -  (33)<<"       "<< (RAND_MAX - 4)/ static_cast < double > (numberOfRolls);  cout <<"\n5:    " << countRoll5<<"             "<<(36) -  (32)<<"       "<< (RAND_MAX - 5)/ static_cast < double > (numberOfRolls);  cout <<"\n6:    " << countRoll6<<"             "<<(36) -  (31)<<"       "<< (RAND_MAX - 6)/ static_cast < double > (numberOfRolls);  cout <<"\n7:    " << countRoll7<<"             "<<(36) -  (30)<<"       "<< (RAND_MAX - 7)/ static_cast < double > (numberOfRolls);  cout <<"\n8:    " << countRoll8<<"             "<<(36) -  (31)<<"       "<< (RAND_MAX - 8)/ static_cast < double > (numberOfRolls);  cout <<"\n9:    " << countRoll9<<"             "<<(36) -  (32)<<"       "<< (RAND_MAX -9)/ static_cast < double > (numberOfRolls);  cout <<"\n10:   " << countRoll10<<"             "<<(36) - (33)<<"       "<< (RAND_MAX - 10)/ static_cast < double > (numberOfRolls);  cout <<"\n11:   " << countRoll11<<"             "<<(36) - (34)<<"       "<< (RAND_MAX - 11)/ static_cast < double > (numberOfRolls);  cout <<"\n12:   " << countRoll12<<"             "<<(36) - (35)<<"       "<< (RAND_MAX - 12)/ static_cast < double > (numberOfRolls); }      //function simulates a diceroll and outputs a number between 1-6 based on system time int getRoll () {    //variable for diceroll int diceRoll;   //dice roll declaration diceRoll = rand()%6 +1;   //returns a number between 2-12 return diceRoll; }   Sep 19 '14 #1 