1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Otrada [13]
3 years ago
14

Programming assignment (100 pts): In the C++ programming language write a program capable of playing Tic-Tac-Toe against the use

r. Your program should use OOP concepts in its design. You can use ASCII art to generate and display the 3x3 playing board. The program should randomly decide who goes first computer or user. Your program should know and inform the user if an illegal move was made (cell already occupied). The program should also announce if one of the players wins or if a draw is achieved. While it is desirable for your program to play a strong game, this is not an Artificial Intelligence course so if your program does not play at a world champion level you will not be penalized for it.
Computers and Technology
1 answer:
STALIN [3.7K]3 years ago
8 0

Answer:

#include <iostream>

#include <ctime>

#include <string> // for string methods

using namespace std;

class Board

{

private:

char squares[3][3]; //two-dimensional arrays

public:

Board() {}

void PrintBoard();

void BeginGame();

void playerTurn (char num, char Player);

bool CheckWin (char Player, bool gameOver);

bool CheckDraw(bool gameOver);

 

};

//Organize board for the game

void Board::BeginGame()

{

int n = 1;

int i = 0;

int j = 0;

for ( i = 0; i < 3; i++ )

{

for ( j = 0; j < 3; j++ )

{

squares[i][j] = '0' + n; //Casting n value to a character

n++;

}

}

} //End SetGameBoard

 

 

//printing board

void Board::PrintBoard()

{

int i = 0;

int j = 0;

for ( i = 0; i < 3; i++ )

{

for ( j = 0; j < 3; j++ )

{

if ( j < 2 )

{

cout << squares[i][j] << " | ";

}

else

{

cout << squares[i][j] << endl;

}

}

}

} //End

 

void Board:: playerTurn (char num, char Player)

{

int i = 0;

int j = 0;

bool WrongMove = true; //If the value is true then the player has made a wrong move

for( i = 0; i < 3; i++ )

{

for( j = 0; j < 3; j++ )

{

if(squares[i][j] == num)

{

//Assigns the space with the X or O,

squares[i][j] = Player;

WrongMove = false;

}

}

}

if(WrongMove == true) { cout << "You can only mark the open sets!\n"; }

} //End Player Move

 

//checking for the winner. If not, cotinue or a draw

bool Board:: CheckWin (char Player, bool GameOver)

{

for(int i = 0; i < 3; i++) //To check rows

{

if(squares[i][0] == squares[i][1] && squares[i][1] ==

squares[i][2]) GameOver = true;

}

for(int i = 0; i < 3; i++) //To check columns

{

if(squares[0][i] == squares[1][i] && squares[1][i] ==

squares[2][i]) GameOver = true;

}

 

if(squares[0][0] == squares[1][1] && squares[1][1] == squares[2][2]) //To check the Diagonals

{

GameOver = true;

}

if(squares[0][2] == squares[1][1] && squares[1][1] == squares[2][0])

{

GameOver = true;

}

if(GameOver == true)

{

cout << "Player " << Player << " wins!\n\n";

cout << "-----------------------" << endl;

cout << "| CONGRATULATIONS " << Player << " |\n";

cout << "-----------------------" << endl << endl;

}

return GameOver;

}

 

bool Board:: CheckDraw(bool GameOver)

{

int n = 1;

int i = 0;

int j = 0;

int counter = 0;

for( i = 0; i < 3; i++ )

{

for( j = 0; j < 3; j++ )

{

//Check to see if the board if full

if(squares[i][j] == '0' + n)

{

counter++;

}

n++;

}

}

if( counter < 1 )

{

cout << "Game Draw\n\n";

GameOver = true;

}

return GameOver;

}

// Main method starts here

int main()

{

bool finish = false, GameOver = false,isValid;

char Player = 'O', num;

int number;

srand(time(NULL)); //seed random from time

number = rand()%2; //Randomly choose a player to start game

if(number == 0)

Player = 'X';

else

Player = 'O';

cout << "" << endl;

 

cout << "-=Tic-Tac-Toe=-\n";

cout << "-------------"<< endl;

Board TicTac;

TicTac.BeginGame();

TicTac.PrintBoard(); //Initialize and output board

do

{

if( Player == 'X' )

{

Player = 'O';

}

else

{

Player = 'X';

}

TicTac.PrintBoard();

cout << "\nPlayer \"" << Player << "\", it's your turn: ";

cin >> num;

cout << "\n";

TicTac.playerTurn (num, Player);

 

GameOver = TicTac.CheckWin (Player, GameOver);

GameOver = TicTac.CheckDraw(GameOver);

if(GameOver == true)

{

cout << "Thank you for playing!";

finish = true;

}

} while(!finish);

return 0;

}

You might be interested in
If you want to open an application that does not have a tile pinned to the start menu
guapka [62]
Search for it in the start menu. Once you find it, right click and press "Pin to taskbar."
6 0
3 years ago
¿Qué creo que debe considerar una empresa para elegir ellugar en el cual va a desarrollar su actividad económica osu emprendimie
zhannawk [14.2K]

Answer:

sorry I don't speak that language

8 0
3 years ago
For some reason my code is not printing in python. It doesn't give me an error is just not printing no thing shows up
svetoff [14.1K]

Answer:

Whats python? i might be able to help

Explanation:

5 0
3 years ago
What activities are the most likely to infect your computer with a virus? Check all that apply
Alex17521 [72]
Opening unfamiler emails and visiting unknown websites
4 0
3 years ago
Read 2 more answers
If a large organization wants software that will benefit the entire organization—what's known as enterprise application software
Ganezh [65]

The organization must develop it specifically for the business in order to get the functionality required is True.

a) true

<u>Explanation:</u>

In software development industry it called as EAS. Where organizations required complete one solution and made most customizable with less cost effective.

Moreover to implement the same organizations has to spend less money for software development and hardware appliances. An organization has clear documented which specific their business requirements and their business future expansion.

Basically in organization from low grade employee to higher employee and meeting is arranged and understand system requirements and compiled as document which is circulated to higher official in organization for their final approval.

5 0
3 years ago
Other questions:
  • There is a flashing yellow light at the intersection you are approaching. What does the flashing yellow light indicate, and what
    8·1 answer
  • When are number list generally used ?
    10·1 answer
  • Sami is creating a web page for her dog walking business. Which item will set the theme for her page? Background color Heading c
    9·1 answer
  • BRAINLIEST!!! 20 PNTS!!!! HELPP!!!
    12·1 answer
  • Suppose that a 2M x 16 main memory is built using 256kB x 8 RAM chips and memory is word addressable, how many RAM chips are nec
    6·1 answer
  • Did brainly.com go down today? i coudlnt get in it
    15·2 answers
  • Fill in the blank with the correct term.
    10·2 answers
  • Please help I will mark brainliest
    11·2 answers
  • Can anyone tell me what's wrong with my pc. When I turn it on it lights up the ram, motherboard, and fans. The cooler and case f
    14·1 answer
  • Koi jinda hei kya hello​
    13·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!