Need help with stack program!!

Apr 7, 2014 at 12:36am
Hello, my questions is two parts. first, why am i getting errors with my brackets that break up the else if statements? Second, i need to have have those same if statements for a second player. Would it be smarter to just make functions for both players or can i just copy paste what i have and just place it after the last else statement? Thanks



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
#include<iostream>

using namespace std;

int top(int deck[], int stackTop);
bool isEmptyStack(int stackTop);
bool isFullStack(int stackTop);
void push (int deck[], int& stackTop, int card);
void pop (int deck[], int& stackTop);



int main()
{
    int card;
    int stackTop = 0;
    int maxStackSize = 100;
    int deck[maxStackSize];
    
    cout <<"Start Game"<<endl;
    int count1 = 0;
    int count2 = 0;
    
    cout <<"Player 1 -"<< count1 << endl;
    cout <<"Player 2 -"<< count2 << endl;
    
    push(deck, stackTop, card);
    while(!isEmptyStack(stackTop))
    {
          for(int i=0; i>= maxStackSize; i++)
          {
                                         
              cout <<"Player 1 turn" << endl;            
              top(deck, stackTop);
              cout <<"Player 1 draws -" << top(deck, stackTop) << endl;
              if(top(deck,stackTop)==0)
                {
                   count1 = count1 - 10;
                   cout <<"Turn over" << endl;
                   pop(deck, stackTop);
                   }
                     
              else if(top(deck,stackTop)==1
              {
                   count1= count1 +1;
                   pop(deck,stackTop);
                   cout <<"Draw again"<< endl;
                   top(deck,stackTop);
                   
                   
                   }
              else if(top(deck,stackTop)==2)
              {
                   count1 = count1 +2;
                   pop(deck,stackTop);
                   push(deck,StackTop); 
                   cout<<"Turn over" << endl;
                   }
              else if(top(deck,stackTop)== 3)
              {
                   count1 = count1 +3;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }
                   
                else if(top(deck,stackTop)== 4)
              {
                   count1 = count1 +4;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }
               else if(top(deck,stackTop)== 35)
              {
                   count1 = count1 +5;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }
               else if(top(deck,stackTop)== 6)
              {
                   count1 = count1 +6;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }
                   
               else if(top(deck,stackTop)== 7)
              {
                   count1 = count1 +7
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }
               else if(top(deck,stackTop)== 8)
              {
                   count1 = count1 +8;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   } 
                 else if(top(deck,stackTop)== 9)
              {
                   count1 = count1 +9;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }
                else if(top(deck,stackTop)== 10)
              {
                   count1 = count1 +10;
                   cout<<"Turn over" << endl;
                   pop(deck,stackTop);
                   }                              
              else
              cout << "Invalid "<< endl;                  
                                        
                        
    
    
}
    return 0;
}
int top(int deck[], int stackTop)
{
	if(stackTop != 0)
	
	return deck[stackTop-1];
	
	else
	{
		cout << "******** EMPTY STACK, nothing to return *********" << endl;
		return -9999;
	}
}
bool isEmptyStack(int stackTop)
{
	return(stackTop==0);
}

bool isFullStack(int stackTop)
{
	return(stackTop == maxStackSize);
}

void push(int deck[], int& stackTop, int card)
{
	if(!isFullStack(stackTop))
	{
        card = rand() % 10 + 1                      
		deck[stackTop] = card;
		stackTop++;
	}
	else
	cout <<"Cannot add to a full stack" << endl;
	
}
void pop(int stack[], int& stackTop)
{
	if(!isEmptyStack(stackTop))
	stackTop--;
	else
	cout <<"Cannot remove from an empty stack" << endl;
}


    
Apr 7, 2014 at 1:44am
line 137, where have you declared maxStackSize?
Apr 7, 2014 at 2:00am
line 17,shouldve made it a const.
Last edited on Apr 7, 2014 at 2:01am
Apr 7, 2014 at 3:09pm
Bump for help please.
Apr 7, 2014 at 3:20pm
first, why am i getting errors with my brackets that break up the else if statements?
On line 43: a ) is missing

Second, i need to have have those same if statements for a second player. Would it be smarter to just make functions for both players
Of course :)

always avoid code repetition

[EDIT]
line 17,shouldve made it a const.
Yes and put it outside of any function
Last edited on Apr 7, 2014 at 3:22pm
Apr 7, 2014 at 4:27pm
Thanks!
Topic archived. No new replies allowed.