Stuck with 4 players

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:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include<iostream>
#include<string>						
#include<ctime>
using namespace 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;
   }


3 or less players cant be used

Any help would be appreciated.
Last edited on
string answer;
// win=1;
cout<<"Enter how many players you want."<<endl;
for (i=0;i<=number+1;i++)
{
space[i]=0;
i++;
}


In the above code number is not initialized so its not even breaking from the for.
It would be reading that as garbage number only.

Please check whether that works or not.
The problem is that it won't go into the for statement at line 39 or 40
for (i=1;i<=number;i++)

the for statement is after the while statement-
while(win==1)

initializing the i int before that for statement didn't work
Last edited on
I've updated the program and posted it and im going to number the lines off
No, remove the line numbers and [code]wrap the code in code tags[/code] to give it syntax highlighting and built-in numbering.
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;
}
Last edited on
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.
The program now works except for using 3 or less players and only works for 4 or 5 players.
Last edited on
Topic archived. No new replies allowed.