I am trying to make a program for a game, and after a couple weeks of getting the 'space', and the while loop to work, I can't have 3 or less players. It will only allow 4 or 5 players. It should allow 2-4 players to play.
Here is the program:
#include<iostream>
#include<string>
#include<ctime>
usingnamespace std;
void Spin(int&,int); // The void function "Spin" assigns the variable "spinner" a number
void Delay(int);
void Spin(int& spinner,int i) // Precondition:
{ // "spinner" equals zero
srand(time(NULL)); // Postcondition:
spinner=rand()%6+1; // "spinner" is assigned a random number between 1-6
}
int main()
{
int space[5]; // "space" keeps track of what space all the players are on the board
int number; // "number" is the amount of players that are playing
int i=0; // "i"
int spinner; // "spinner" this gets a random nuber 1-6 and adds it to space
int win; // "win" decides whether the program should continue or not
string answer; // "answer" has the user input something to continue
cout<<"Enter how many players you want."<<endl;
cin>>number; // This intializes all the dimensions of space as zero
for (i=0;i<number+1;i++)
{
space[i]=0;
}
cout<<"Everone starts on space 0."<<endl;
win=1;
while(win==1) // This loop keeps going until someone wins
{
cout<<"?"<<endl;
for (i=1;i<=number;i++) //This gives each of the players a turn
{
if (space[0]<100&&space[1]<100&&space[2]<100&&space[3]<100&&space[4]<100) // After someone wins it stops the next player(s) by going
{
cout<<"Player "<<i<<" type something in to continue."<<endl;
cin>>answer; //This pauses the program so its not all done in one second
Spin(spinner,i); //This calls to the Spin function
space[i]=space[i]+spinner; //Adds what the player rolled to their space
if (space[i]>=100)
{
space[i]=100;
}
cout<<"Player "<<i<<" spun a "<<spinner<<". "<<endl;
cout<<"You are now on space "<<space[i]<<"."<<endl;
/********************************************************************************/
/* */
/* These if statements are the chutes and ladders of the program */
/* */
/********************************************************************************/
if (space[i]==4)
{
cout<<"You donated blood. You advance to space 14."<<endl;
space[i]=14;
}
if (space[i]==9)
{
cout<<"You won the pie-eating contest. You advance to space 31."<<endl;
space[i]=31;
}
if (space[i]==16)
{
cout<<"You knocked a bookcase over. You go back to space 6."<<endl;
space[i]=6;
}
if (space[i]==21)
{
cout<<"You won the pet show. You advance to space 42."<<endl;
space[i]=42;
}
if (space[i]==28)
{
cout<<"You won the lottery! You advance to space 84."<<endl;
space[i]=84;
}
if (space[i]==36)
{
cout<<"You baked a cake for your mother. You advance to space 44."<<endl;
space[i]=44;
}
if (space[i]==47)
{
cout<<"You lost your favorite book. You go back to space 26."<<endl;
space[i]=26;
}
if (space[i]==49)
{
cout<<"You forgot your mother's birthday. You go back to space 11."<<endl;
space[i]=11;
}
if (space[i]==51)
{
cout<<"You helped a cat get out of a tree. You advance to space 67."<<endl;
space[i]=67;
}
if (space[i]==56)
{
cout<<"You didn't feed your pet. You go back to space 53."<<endl;
space[i]=53;
}
if (space[i]==62)
{
cout<<"You failed a big test. You go back to space 19."<<endl;
space[i]=19;
}
if (space[i]==64)
{
cout<<"You lost your pet. You go back to space 60."<<endl;
space[i]=60;
}
if (space[i]==71)
{
cout<<"You got an 'A' on a big test. You advance to space 91."<<endl;
space[i]=91;
}
if (space[i]==80)
{
cout<<"You have discovered a cure for cancer. You advance to space 100, YOU WIN!"<<endl;
space[i]=100;
}
if (space[i]==87)
{
cout<<"You crashed your parents' car. You go back to space 24."<<endl;
space[i]=24;
}
if (space[i]==93)
{
cout<<"You broke the TV. You go back to space 73."<<endl;
space[i]=73;
}
if (space[i]==95)
{
cout<<"You spilled the paint on the floor. You go back to space 75."<<endl;
space[i]=75;
}
if (space[i]==98)
{
cout<<"You caught the flu. You go back to space 78."<<endl;
space[i]=79;
}
if (space[i]>=100)
{
cout<<"Player "<<i<<" YOU WIN!"<<endl;
win=2;
}
}
}
}
return 0;
}
The program is updated and now the while loop works, but the random generator (lines 8-13) will not work and keeps coming up with 0 as the value of space[i]
random generator:
void Spin(int spinner,int (&space)[4],int i) // Precondition:
{ // "spinner" equals zero
srand(time(NULL)); // Postcondition:
spinner=rand()%6+1; // "spinner" is assigned a random number between 1-6
space[i]=space[i]+spinner;
}
If your code executes in less than a second, then srand(time(NULL)) will seed it to the same position every time. You should call srand once at the start of the entire program.