
Objective:
Design a program that uses two-dimensional arrays, classes and objects
Assignment:
Write a program that plays a tic-tac-toe game with the user.
Define a class TicTacToe with the necessary data and functions to play the game. Use a 2-D char array with three rows and three columns as the game board. The class should also have the following functions:
- A constructor to initialize the board. I suggest either asterisk ('*') or characters '1' through '9'.
- A function to play the user's turn, fill in the board with either an 'X' or 'O' given row and column number (1-3)
- A function to play the computer's turn. This function will determine the row and column number to be filled in. You can use a simple
algorithm such as look for the first space available, or random number generation. ComplexAI algorithms will only be accepted with an explanation of its behavior via a zoom meeting. - A function to verify if there is a win. This can be broken down by calling 3 separate private functions that can verify column win, row win or diagonal win. If there is no winner, let the user know there is a tie.
The main function to test your class is given.
Note that all member functions that you need to call in main through the TicTacToe object should be public, but functions needed only inside your class implementation (called only by other functions in your class) should be private.
You can decide who will have 'X' or 'O'.
Have fun!
Turn in:
- TicTacToe.h (or .hpp) and TicTacToe.cpp with the implementation of your class.
TicTacToe_main.cpp:
/********************************************************
Description: Tic-Tac-Toe driver program
Author: Hellen Pacheco
Date: October, 2020
********************************************************/
#include "TicTacToe.h"
#include <iostream>
using namespace std;
enum gameStatusType { USER, COMPUTER, TIE, INPROGRESS };
// values of gameStatusType are USER=0, COMPUTER=1, TIE=2, INPROGRESS=3
int main()
{
int row, col;
int gameStatus;
TicTacToe tttGame; // instantiates a Tic-tac-toe object
cout<<"Hello, welcome to the Tic-Tac-Toe game."<<endl;
do
{
tttGame.printBoard();
cout<<"Please enter row#: "<<endl;
cin >> row;
cout<<"Please enter col#: "<<endl;
cin >> col;
tttGame.userMove(row, col);
tttGame.computerMove();
gameStatus = tttGame.determineWinner();
switch (gameStatus)
{
case USER : cout << "You won!"; break;
case COMPUTER : cout << "Computer won!"; break;
case TIE: cout << "It is a tie!"; break;
case INPROGRESS: continue;
}
} while (gameStatus == INPROGRESS);
return 0;
}

Trending nowThis is a popular solution!
Step by stepSolved in 2 steps

- C++ CODE HELP NEEDED NEED MISSING CODE THAT WILL Read an integer as the number of Goat objects. Assign myGoats with an array of that many Goat objects. For each object, call object's Read() followed by the object's Print(). Ex: If the input is 2 5 87 7 71, then the output is: Goat's age: 5 Goat's weight: 87 Goat's age: 7 Goat's weight: 71 Goat with age 7 and weight 71 is deallocated. Goat with age 5 and weight 87 is deallocated. #include <iostream>using namespace std; class Goat { public: Goat(); void Read(); void Print(); ~Goat(); private: int age; int weight;};Goat::Goat() { age = 0; weight = 0;}void Goat::Read() { cin >> age; cin >> weight;}void Goat::Print() { cout << "Goat's age: " << age << endl; cout << "Goat's weight: " << weight << endl;}Goat::~Goat() { // Covered in section on Destructors. cout << "Goat with age " << age << " and weight " <<…arrow_forwardJavaDriver Program Write a driver program that contains a main method and two other methods. Create an Array of Objects In the main method, create an array of Food that holds at least two foods and at least two vegetables. You can decide what data to use. Method: Print Write a method that prints the text representation of the foods in the array in reverse order (meaning from the end of the array to the beginning). Invoke this method from main. Method: Highest Sugar Food Write a method that takes an array of Food objects and finds the Food that has the most sugar. Note that the method is finding the Food, not the grams of sugar. Hint: in looping to find the food, keep track of both the current highest index and value. Invoke this method from main.arrow_forward11:02 all 10% + Create 1 1000.01 Create 2 2000.02 Create 3 3000.03 Deposit 111.11 Deposit 2 22.22 Withdraw 4 5000.00 Create 4 4000.04 Withdraw 1 0.10 Balance 2 Withdraw 2 0.20 Deposit 3 33.33 Withdraw 4 0.40 Bad Command 65 Balance 1 Balance 2 Balance 3 Balance 4arrow_forward
- Problem Description - JAVA PROGRAMMING Use a Two-dimensional (3x3) array to solve the following problem: Write an application that inputs nine numbers, each of which is between 1 and 10, inclusive. Display the array after the user inputs each value. Rotate/flip the array by changing places. Make the rows columns and vice versa. You have to move the elements to their new locations. Remember to validate the input and display an error message if the user inputs invalid data. Documentation and the screenshot(s) of the results. Example: 1 2 3 4 5 6 7 8 9 the result will be : 1 4 7 2 5 8 3 6 9arrow_forward10 Build the Sudoku Reviewer ( the testing program). The specification is below. Please note: you DO NOT have to build a Sudoku solver. To test you just need to build a class that generates a 9x9 2D array with the values you want to test. You can assume the value types are valid. (integers from 1-9). 1-The main purpose is to make sure the Sudoku solver actually solved it correctly! 2- You are also confirming the solver solves puzzle in no longer than a minute 3- Solver (not the reviewer) requires 7 INDICES (ELEMENTS) filled in the input array at least. 4- The reviewer receives both the original puzzle and the solution. The Reviewer needs to confirm the solution is not only a valid SudoKu solution but also the solution to the original puzzle. 5- Solver will return a 2d array filled with -1s if input array has an error/bad input (exception). Reviewer will check for this case.arrow_forwardin C#, Visual Basic Write an app for Boston Airlines that allows a customer to reserve a seat on the airline’s only plane (capacity: 10 seats). Radio buttons should allow the choice between First Class and Economy. The app should then assign a seat in the first-class section (seats 1–5) or the economy section (seats 6–10). Use a one-dimensional array of type bool to represent the seating chart of the plane. Initialize all the elements of the array to false to indicate that all the seats are empty. As each seat is assigned, set the corresponding element of the array to true to indicate that the seat is no longer available. Your app should never assign a seat that has already been assigned. When the economy section is full, your app should ask the person if it is acceptable to be placed in the first-class section (and vice versa). If yes, make the appropriate seat assignment. If no, display the message “Next flight leaves in 3 hours."arrow_forward
- Assignment: Enhancing Dice Roll Stats Calculator Program Introduction: The project involves creating a program to roll pairs of dice, gathering statistics on the outcomes. Probability differs in the roll of two dice compared to a single die due to varied combinations. Dice Roll Series: User greeted with "Welcome to the Dice Roll Stats Calculator!" and prompted to specify rolls. Java classes: DiceRoller, Indicator, Validator. DiceRoller: Arrays: rollSeries (captures results), statIndicators (stores statistical indicators). Constructor rolls dice as per user request. Methods collect stats and print the report. Indicator class: Contains dicePairTotal and dicePairCount. Displaying Results: Sort statIndicators array before display. Indicator objects sortable by dicePairCount (implements Comparable). Example output:-----------------------dicepair rolltotal count percent---- ------ --------7 5 50%10 2 20%4 2 20%2 1 10% Tasks:…arrow_forwardPLEASE CODE IN PYTHON PLEASE USE NESTED CLASS FUNCTION Design a Point Class with attributes X and Y coordinates. The Class should have following functions: a) change the coordinates, b) return a 2 element list [x,y] c) print a Point object. d) return distance from this instance to a given [x,y] Also design a Line Class which has 2 Point attributes. The Line class should have functions for following behaviours: a) Return the length of the line. b) Print the equation of the line c) Find if this instance is equal in length to another line.arrow_forwardCreate an array of objects of the Person class, of size 4. Create three objects of the Person class, with values, and assign the objects to the array. Loop through the array and print the name, job, and email of all Personobjects.arrow_forward
- use c++ Programming language Write a program that creates a two dimensional array initialized with test data. Use any data type you wish . The program should have following functions: .getAverage: This function should accept a two dimensional array as its argument and return the average of each row (each student have their average) and each column (class test average) all the values in the array. .getRowTotal: This function should accept a two dimensional array as its first argument and an integer as its second argument. The second argument should be the subscript of a row in the array. The function should return the total of the values in the specified row. .getColumnTotal: This function should accept a two dimensional array as its first argument and an integer as its second argument. The second argument should be the subscript of a column in the array. The function should return the total of the values in the specified column. .getHighestInRow: This function should accept a two…arrow_forwardjavascript only: This quarter, your team manager is awarding commission to anyone who closes a sale worth $15,000 or more! The commission amount will be 10% of the value of their largest sale. Anyone who does not make this large of a sale will receive the base commission of $500. Write a function `salesCommission(arr)` that takes an array of objects containing salesperson names and their largest sale, and returns the total amount of commission money that needs to be paid out to the team. Example: salespeople = [ { name: "Susan", largestSale: 3000 }, { name: "Brianna", largestSale: 20000 }, { name: "Dwayne", largestSale: 13000 }, { name: "Delilah", largestSale: 26000 }, { name: "Fernando", largestSale: 8000 }, ]; console.log(salesCommission(salespeople)); // 6100arrow_forwardIn C# Use a one-dimensional array to solve the following problem. Write a class called ScoreFinder. This class receives a single dimensional integer array representing passer ratings for NFL players as an argument for its constructor. The test class will provides this argument. The test class then calls upon a method from the ScoreFinder class to start the process of finding a specific rating, which will be provided by the user. The method will iterate through the array and find any matching values. For all the matches that are found, the method will note the index of the cell along with its value. At completion, the method will print a list of all the indices and the associated scores along with a count of all the matching values.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





