Hello everybody, I was given a partial code for a tic-tac-toe game using classes in C++, and I'm asked to modify it in a few ways. First off I have to fix the display (easy, don't need help here), I have to add a constructor member function which initialize the empty board to all zeros (which I could use some help with, I don't understand where in the program I would even want this to occur, or why?) Lastly I have to make it so that a second player can play, as of right now only player one can add x's to the board. Furthermore, I'm having trouble understanding what the entire "Check_Board" object does at all? I see a bunch of sums and multiplications, and I can't figure out what the hell it's doing! Code: // Tic-Tac-Toe Game by Devan Wiech #include <iostream> #include <string> #include <cmath> using namespace std; class TicTacToe { public: TicTacToe(); int Pick_Player(); int Pick_Row(); int Pick_Column(); int Check_Board(); void Choice_by_Player(int); void Choice_of_Row(int); void Choice_of_Column(int); void Tic_Tac_Toe_Board(); bool Check_Move (int, int); private: int row; int column; int player; int board[3][3]; char display_board[3][3]; }; TicTacToe::TicTacToe() { row=0; column=0; player=1; int i=0; //where i is row and j will be columns int j=0; for (i=0; i<3; i++) { for (j=0; j<3; j++) { board[i][j] =0; display_board[i][j] = ' '; } } } int TicTacToe::Pick_Player() { return player; } int TicTacToe::Pick_Row() { return row; } int TicTacToe::Pick_Column() { return column; } void TicTacToe::Choice_by_Player(int a) { player=a; } void TicTacToe::Choice_of_Row(int b) { row=b; } void TicTacToe::Choice_of_Column(int c) { column=c; } bool TicTacToe::Check_Move(int row, int column) { if (row!=0 && row!=1 && row!=2 ) { cout<<"Invalid choice!!"<<endl; return 0; } else if (column!=0 && column!=1 && column!=2 ) { cout<<"Invalid choice!!"<<endl; return 0; } else if (board[row][column] ==1 || board[row][column] ==2) { cout<<"Space already used. Try Again." <<endl; return 0; } else { board[row][column] = player; return 1; } } int TicTacToe::Check_Board() { int i=0; int j=0; int sum= 0; int test= 0; int count= 0; for (i= 0; i<3; i++) { sum=0; for(j=0; j<3; j++) { if (board[i][j] ==0) { count++; } sum +=(board[i][j]*board[i][j]); } if (sum==3 ||sum==12) { test=sum; break; } sum=0; } for (j=0; j<3; j++) { sum=0; for (i=0; i<3; i++) { sum+=(board[i][j]*board[i][j]); } if (sum==3 || sum==12) { test=sum; break; } sum=0; } if(test!=3 ||test!=12) { sum = (board[0][0] * board[0][0])+ (board[1][1] * board[1][1]) + (board[2][2] * board[2][2]); if ( sum == 3 || sum == 12) { test=sum; } } if (test != 3 || test != 12) { sum = (board[2][0] * board[2][0])+ (board[1][1] * board[1][1]) + (board[0][2] * board[0][2]); if (sum==3||sum==12) { test=sum; } } if (test==3) { test=1; } else if (test==12) { test=2; } else if (count==0) { test=3; } else { test=0; } return test; } void TicTacToe::Tic_Tac_Toe_Board() { for ( int row = 0; row < 3; row ++) { for ( int column = 0; column < 3; column++) { if ( board[row][column] == 0) { display_board[row][column] = ' '; } if ( board[row][column] == 1) { display_board[row][column] = 'X'; } if ( board[row][column] == 2) { display_board[row][column] = 'O'; } } } cout<<"Welcome to tic-tac-toe!"<<endl<<endl;; cout<< " Current Player: X Current Player: O " << endl<<endl<<endl; cout << " | | " << endl; cout << " | | " << endl; cout <<display_board[0][0] << " "<<display_board[0][1]<<" | " << display_board[0][2] << " " << endl; cout << " | | " << endl; cout << "-----------------------------------------------" << endl; cout << " | | " << endl; cout << " | | " << endl; cout <<display_board[1][0] << " "<<display_board[1][1]<<" | " << display_board[1][2] << " " << endl; cout << " | | " << endl; cout << "-----------------------------------------------" << endl; cout << " | | " << endl; cout <<display_board[2][0] << " "<<display_board[2][1]<<" | " << display_board[2][2] << " " << endl; cout << " | | " << endl; cout << " | | " << endl; } int main() { TicTacToe game; bool test; bool more=true; int row=0; int column=0; int player; int check=0; TicTacToe(); while (more) { game.Tic_Tac_Toe_Board(); player= game.Pick_Player(); cout<<" Current Player "<<player; cout<< endl; cout<< "Enter Row Index (0, 1, or 2): " <<endl; cin>>row; cout<<"Enter Column Index (0, 1, or 2): "<<endl; cin>>column; game.Choice_of_Row(row); game.Choice_of_Column(column); test= game.Check_Move( game.Pick_Row(), game.Pick_Column()); if (test==1) { check=game.Check_Board(); } else { while (test==0) { cout<<"Current player"<<game.Pick_Player()<<"Invalid Choice"<<endl; cout<<"Enter Row Index (0, 1, or 2): "<<endl; cin>>row; cout<<"Enter Column Index (0, 1, or 2): "<<endl; cin>>column; game.Choice_of_Row(row); game.Choice_of_Column(column); test=game.Check_Move(game.Pick_Row(), game.Pick_Column()); } check= game.Check_Board(); } if (check==1 ||check==1) { break; } else if (check==3) { game.Tic_Tac_Toe_Board(); cout<<"The game is tied. "<<endl; } if (player ==1) { player==2; } else { player=1; } game.Choice_by_Player(player); } game.Tic_Tac_Toe_Board(); cout<<"Player "<<check<<" wins! "<<endl; return 0; }