"expected initializer before ‘bool’"??

I expect the problem is staring me in the face! Help someone?


Error report
g++ lab1.cpp -o lab1
lab1.cpp:6: error: expected initializer before ‘bool’



CODE
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#include <iostream>
using namespace std;

bool gameOver; //global for funct
void printState (char board[3][3])
bool makeMove (int player_Num, char board[3][3], int currentMove)
bool checkWin (int player_Num, char board[3][3])

int main(){
	
	bool validMove;
	int player_Num = 1, currentMove;
	char playerMark = 'x';
	char board[3][3]={{'1','2','3'},{'4','5','6'},{'7','8','9'}};
	
gameOver=0;	
	
	while (!gameOver){
		
		while (!validMove){
			
			//Prints the board and determines what players turn it is
			printState (board);
			
			if (player_num==1){
				playerMark='x';
			}
			
			else if (player_num==2){
				playerMark='o'
			}
			
			//Gets the current move in the form of a number in the grid
			cout << "Player " << player_num << ", it's your turn! : " << endl;
			cin >> currentMove;
			validMove=1;
			
			//Makes the current move
			makeMove (player_Num, board[3][3], currentMove)
		}
		
		//Checks for a win
		checkWin (player_Num, board[3][3])
		
		
return 0;
}		


//////////////////////////////////////////////////////////////////
//**********************FUNCTIONS*******************************//
//////////////////////////////////////////////////////////////////

//Print the current layout of the board with board being "board[i rows][j cols]"
printState (char board [3][3]){
	
	for (i=0;i<3;i++)
	{
		cout << " - - - - - - - - - - - -  " << endl;
		cout << "|       |       |       | " << endl;
		cout << "|";
		 
		 for (j=0; j<3; j++)
		 {
		 	cout << "   " << board [i][j] << "   ";
		 	cout << "|";
		 }
		cout << endl;
		cout << "|       |       |       | " << endl;
	}
	cout << " - - - - - - - - - - - -  " << endl;
}

/***************************************************************/ 

//Checks win
bool checkWin (int player_Num, char board[3][3]){
	
	//row1
	if (board[0][0]==board[0][1] && board[0][1]==board[0][2]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//row2
	else if (board[1][0]==board[1][1] && board[1][1]==board[1][2]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//row3
	else if (board[2][0]==board[2][1] && board[2][1]==board[2][2]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//col1
	else if (board[0][0]==board[1][0] && board[1][0]==board[2][0]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//col2
	else if (board[0][1]==board[1][1] && board[1][1]==board[2][1]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//col3
	else if (board[0][2]==board[1][2] && board[1][2]==board[2][2]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//corssRight
	else if (board[0][0]==board[1][1] && board[1][1]==board[2][2]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//crossLeft
	else if (board[0][2]==board[1][1] && board[1][1]==board[2][0]){
		printState(board);
		cout << endl << "Player " << player_Num << " you have won!" << endl;
		gameOver=1;
		return 1;
	}
	
	//Draw!
	else if (board[0][0]!='1' && board[0][1]!='2' && board[0][2]!='3' && board[1][0]!='4' && board[1][1]!='5' && board[1][2]!='6' && board[2][0]!='7' && board[2][1]!='8' && board[2][2]!='9'){
		cout << endl << "It's a draw!";
		gameOver=1;
		return 1;
	}
}

/***************************************************************/ 

//Current Move
bool makeMove (int player_Num, char board[3][3], int currentMove){
	
	if (currentMove == 1 && baord[0][0] == '1'){
		board[0][0] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 2 && baord[0][1] == '2'){
		board[0][1] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 3 && baord[0][2] == '3'){
		board[0][2] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 4 && baord[1][0] == '4'){
		board[1][0] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 5 && baord[1][1] == '5'){
		board[1][1] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 6 && baord[1][2] == '6'){
		board[1][2] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 7 && baord[2][0] == '7'){
		board[2][0] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 8 && baord[2][1] == '8'){
		board[2][1] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else if (currentMove == 9 && baord[2][2] == '9'){
		board[2][2] = player_Num // ** MIGHT NEED TO CHANGE TO PLAYERMARK
	}
	
	else {
		validMove=0
		cout << endl << "ERROR! : Invalid Move " << endl;
		}
	
	return 0;
}

1
2
3
4
bool gameOver; //global for funct
void printState (char board[3][3])
bool makeMove (int player_Num, char board[3][3], int currentMove)
bool checkWin (int player_Num, char board[3][3])


Prototyped functions should end with a semicolor ';'

Also post the line on which you receive errors next time(your compiler should tell you that)
Thanks... have another error it seems...

Error:
g++ lab1.cpp -o lab1
lab1.cpp: In function ‘int main()’:
lab1.cpp:39: error: expected primary-expression before ‘]’ token
lab1.cpp:39: error: expected primary-expression before ‘]’ token
lab1.cpp:43: error: expected primary-expression before ‘]’ token
lab1.cpp:43: error: expected primary-expression before ‘]’ token
make: *** [lab1] Error 1

I think I might be using the 2D array wrong... only taught myself how to use it today.

1
2
3
4
5
6
			//Makes the current move
			makeMove (player_Num, board[][], currentMove);
		}
		
		//Checks for a win
		checkWin (player_Num, board[][]);
Topic archived. No new replies allowed.