# CS304 Assignment 2 Solution Fall 2021 - Complete VU Answer

A Proper CS304 Assignment 2 Solution Fall 2021. Easy to See Step by Step CS304 Assignment No 2 Fall 2021 Solution and Download .CPP, WORD, and PDF File Below.

## CS304 ASSIGNMENT 2 SOLUTION FALL 2021

Due Date: 2 Jan 2021

Total Marks: 20

Submit the assignment in .CPP format only.

Save assignment with your student id (e.g., bc20000000000.cpp)

Assignment Objective:

Creating a Tic-tac-toe Game Code in C++.

CODE Solution:

#include <iostream>

#include <windows.h>

using namespace std;

class TicTacToe

{

private:

char play[3][3];

public:

TicTacToe();

void makeMove();

void printBoard();

int validMove();

int gameStatus();

void startGame();

};

int TicTacToe::validMove()

{

int move, move1,player = 1, i;

char mark = 'X';

do

{

player = (player%2) ? 1 : 2;

printBoard();

mark=(player == 1) ? 'X' : 'O';

cout << "Player " << mark << " enter move: ";

cin >> move >> move1;

cout<<""<<endl;

mark=(player == 1) ? 'X' : 'O';

if(move == 0 &&move1 == 0&& play[0][0] == ' ')

{

play[0][0] = mark;

}

else if(move == 0 &&move1 == 1 && play[0][1] == ' ')

{

play[0][1] = mark;

}

else if(move == 0 &&move1 == 2 && play[0][2] == ' ')

{

play[0][2] = mark;

}

else if(move == 1&&move1 == 0 && play[1][0] == ' ')

{

play[1][0] = mark;

}

else if(move == 1&&move1 == 1 && play[1][1] == ' ')

{

play[1][1] = mark;

}

else if(move == 1 &&move1 == 2&& play[1][2] == ' ')

{

play[1][2] = mark;

}

else if(move == 2 &&move1 == 0 && play[2][0] == ' ')

{

play[2][0] = mark;

}

else if(move == 2 &&move1 == 1 && play[2][1] == ' ')

{

play[2][1] = mark;

}

else if(move == 2 &&move1 == 2 && play[2][2] == ' ')

{

play[2][2] = mark;

}

else

{

cout<<"Invalid move ";

player--;

cin.ignore();

cin.get();

}

i=gameStatus();

player++;

}while(i==-1);

printBoard();

if(i==1){

--player;

cout<<"\n==>\aPlayer "<<mark<<" win " << endl;

for(int sc = 0; sc < 3; sc++)

{

for(int ar = 0; ar < 3; ar++)

{

play[sc][ar] = ' ';

}

}

}

else

{

cout<<"\n==>\aGame Draw" << endl;

for(int sc = 0; sc < 3; sc++)

{

for(int ar = 0; ar < 3; ar++)

{

play[sc][ar] = ' ';

}

}

}

}

TicTacToe::TicTacToe()

{

for(int sc = 0; sc < 3; sc++)

{

for(int ar = 0; ar < 3; ar++)

{

play[sc][ar] = ' ';

}

}

}

int TicTacToe::gameStatus()

{

if (play[0][0] == play[0][1] && play[0][1] == play[0][2] && play[0][0] != ' ')

return 1;

else if (play[1][0] == play[1][1] && play[1][1] == play[1][2] && play[1][0] != ' ')

return 1;

else if (play[2][0] == play[2][1] && play[2][1] == play[2][2] && play[2][0] != ' ')

return 1;

else if (play[0][0] == play[1][0] && play[1][0] == play[2][0] && play[0][0] != ' ')

return 1;

else if (play[0][1] == play[1][1] && play[1][1] == play[2][1] && play[0][1] != ' ')

return 1;

else if (play[0][2] == play[1][2] && play[1][2] == play[2][2] && play[0][2] != ' ')

return 1;

else if (play[0][0] == play[1][1] && play[1][1] == play[2][2] && play[0][0] != ' ')

return 1;

else if (play[0][2] == play[1][1] && play[1][1] == play[2][0] && play[0][2] != ' ')

return 1;

else if (play[0][0] != ' ' && play[0][1] != ' ' && play[0][2] != ' '

&& play[1][0] != ' ' && play[1][1] != ' ' && play[1][2] != ' '

&& play[2][0] != ' ' && play[2][1] != ' ' && play[2][2] != ' ')

return 0;

else

return -1;

}

void TicTacToe::makeMove()

{

validMove();

}

void TicTacToe::startGame()

{

makeMove();

}

void TicTacToe::printBoard()

{

cout << " 0\t1\t2" << endl << endl;

cout << "0     :     :   " << endl;

cout << "   "<< play[0][0] << "  :  "<< ""<< play[0][1] << "  :" << "  "<< play[0][2] << endl;

cout << " _____:_____:_____" << endl;

cout << "1     :     :" << endl;

cout << "   "<< play[1][0] << "  :  "<< ""<< play[1][1] << "  :" << "  "<< play[1][2] << endl;

cout << " _____:_____:_____" << endl;

cout << "      :     :   " << endl;

cout << "   "<< play[2][0] << "  :  "<< ""<< play[2][1] << "  :" << "  "<< play[2][2] << endl;

cout << "2     :     :   " << endl << endl;

cout << "\n";

}

int main()

{

TicTacToe myGame;

int run = 1;

char choice;

do

{

myGame.startGame();

cout << "\nDo You Want to Play Again[y/n]: ";

cin >> choice;

cout <<"\n";

if(choice == 'y' || choice == 'Y')

{

run = 1;

}

else

{

run = 0;

}

}while(run == 1);

return 0;

}

OUTPUT

Check Also:

CS304 Quiz 1 Solved

CS304 Midterm Past Papers Mega Files

CS304 Solved Midterm Past Papers by Subjective and objectives

CS304 Short notes

Share with fellows to get easily help in studies.