Code:
#include <iostream>
#include <iomanip>
using namespace std;
//Global constants
const int COLS = 3; //Number of columns on the board
const int ROWS = 3; //Number of rows on the board
void initBoard (char [][COLS], int );
void displayBoard(char [][COLS], int);
void player1 (int rowX, int colX, char array[][COLS] );
void player2 (int rowO, int colO, char array[][COLS] );
char winner (char array[][COLS], char answer);
void playOneGame(char B[][COLS], char answer);
int main ()
{
char yes;
char B[ROWS][COLS] = {{'*','*','*'},{'*','*','*'},{'*','*','*'}};
char A[ROWS][COLS] = {{'*','*','*'},{'*','*','*'},{'*','*','*'}};
char answer = 'n' ;
cout << "To play the game enter the row in which you would like to place your marker and press enter. Then do the same for the column.\n";
//initBoard(A, ROWS);
do
{
initBoard(A, ROWS);
playOneGame(B, answer);
cout << "Another game? Y/N" ;
cin >> yes;
}
while (yes == 'Y' || yes == 'y') ;
system("pause");
return 0;
}
void playOneGame (char B[][COLS], char answer)
{
int rowX = 0 ;
int colX = 0 ;
int rowO = 0 ;
int colO = 0 ;
for (int i = 0; i < 6 ; i++)
{
player1 (rowX, colX, B);
answer = winner(B, answer) ;
if (answer == 'x')
break;
displayBoard(B, ROWS);
player2 (rowO, colO, B);
answer = winner(B, answer);
if (answer == 'o')
break;
displayBoard(B, ROWS);
}
}
void displayBoard ( char array[][COLS], int rows )
{
for (int x = 0; x < rows; x++)
{
for (int y = 0; y < COLS; y++)
{
cout << array[x][y] << " ";
}
cout << endl;
}
}
void initBoard ( char array2[][COLS], int rows )
{
for (int x = 0; x < rows; x++)
{
for (int y = 0; y < COLS; y++)
{
cout << array2[x][y] << " ";
}
cout << endl;
}
}
void player1 (int rowX, int colX, char array[][COLS])
{
cout << "Please select a space on the board to place your 'x'\n";
cin >> rowX >> colX ;
if (rowX == 1 && colX == 1) array[0][0] = 'x' ;
if (rowX == 1 && colX == 2) array[0][1] = 'x' ;
if (rowX == 1 && colX == 3) array[0][2] = 'x' ;
if (rowX == 2 && colX == 1) array[1][0] = 'x' ;
if (rowX == 2 && colX == 2) array[1][1] = 'x' ;
if (rowX == 2 && colX == 3) array[1][2] = 'x' ;
if (rowX == 3 && colX == 1) array[2][0] = 'x' ;
if (rowX == 3 && colX == 2) array[2][1] = 'x' ;
if (rowX == 3 && colX == 3) array[2][2] = 'x' ;
}
void player2 (int rowO, int colO, char array[][COLS] )
{
cout << "Please select a space on the board to place your 'o'\n";
cin >> rowO >> colO ;
if (rowO == 1 && colO == 1) array[0][0] = 'o' ;
if (rowO == 1 && colO == 2) array[0][1] = 'o' ;
if (rowO == 1 && colO == 3) array[0][2] = 'o' ;
if (rowO == 2 && colO == 1) array[1][0] = 'o' ;
if (rowO == 2 && colO == 2) array[1][1] = 'o' ;
if (rowO == 2 && colO == 3) array[1][2] = 'o' ;
if (rowO == 3 && colO == 1) array[2][0] = 'o' ;
if (rowO == 3 && colO == 2) array[2][1] = 'o' ;
if (rowO == 3 && colO == 3) array[2][2] = 'o' ;
}
char winner ( char B[][COLS], char answer)
{
if (B[0][0] == B[0][1] && B[0][1] == B[0][2])
answer = B[0][0] ;
if (B[1][0] == B[1][1] && B[1][1] == B[1][2])
answer = B[1][0];
if (B[2][0] == B[2][1] && B[2][1] == B[2][2])
answer = B[2][0];
if (B[0][0] == B[1][0] && B[1][0] == B[2][0])
answer = B[1][0];
if (B[0][1] == B[1][1] && B[1][1] == B[2][1])
answer = B[1][1];
if (B[0][2] == B[1][2] && B[1][2] == B[2][2])
answer = B[2][2];
if (B[0][0] == B[1][1] && B[1][1] == B[2][2])
answer = B[2][2];
if (B[0][2] == B[1][1] && B[1][1] == B[2][0])
answer = B[1][1];
if (answer == 'x' || answer == 'o')
cout << "player " << answer << " has won\n" ;
return answer;
}