Question: Java tic-tac-toe implement a text-based Tic-Tac-Toe game for two human players. However, you will be expanding your program to include computer players at a later

Java tic-tac-toe

implement a text-based Tic-Tac-Toe game for two human players. However, you will be expanding your program to include computer players at a later date, so please realize that you are required to implement exactly the methods below even if you will only use the "human" options in this assignment. This program emphasizes two-dimensional arrays and methods.

Requirements

Board: You must use a 3 x 3 two-dimensional array of chars to store the game board information. Valid values for each square on the board are:

(space) -- meaning this square is empty (not yet chosen)

X -- meaning this square is taken by player 1 (always X)

O -- meaning this square is taken by player 2 (always O).

Player Options: For each game, your program should prompt the user to determine whether each player is human or computer, and you will just choose human for both. Player 1 always goes first and uses the X symbol.

Input and Output: The output of the board should be in text format, as shown below. Please use a fixed-width font (like Courier) so that things line up. Allow a human player to enter an integer to choose an empty square (see example below). Whenever an invalid square is chosen by a human player (already filled, or out of range), print an error message and have the human player try again. Sample output is shown below.

End of Game: When a player wins, print out a message declaring the winner as shown below. If the game ends with no winner, print out a message declaring it a draw.

Methods: You are required to define the following methods with these parameter profiles and return types. Assume the board is a 3x3 character array.

void main(): run a single game.

void takeTurn(board, int playerNum, boolean human): Call the humanTurn method below with the correct player number and the board based on whether the boolean variable human is true or false.

void humanTurn(board, int playerNum): Update the board by consulting the user, and announce the move.

void announceMove(int playerNum, boolean human, int move) Print a line announcing which player of which type took which move. See sample output below.

boolean horizontalWin(board, playerNum): Return true if this board has a horizontal win, false otherwise.

boolean verticalWin(board, playerNum): Return true if this board has a vertical win, false otherwise.

boolean diagonalWin(board, playerNum): Return true if this card has a diagonal win, false otherwise.

int Winner(board): Return players number (1 or 2) if they win, zero otherwise.

int availableSquares(board): Return the number of squares still available on the board.

boolean isFull(board): Return true if this board has no empty squares.

void printBoard(board): Print the current board and reminder board as shown below.

It should look like this:

Is player one human?(yes or no): yes

Is player two human?(yes or no): yes

Game Board: Positions:

| | 1 | 2 | 3

----------- -----------

| | 4 | 5 | 6

----------- -----------

| | 7 | 8 | 9

Player 1, please enter a number(1-9): 1

Player 1 chooses position 1.

X | | 1 | 2 | 3

----------- -----------

| | 4 | 5 | 6

----------- -----------

| | 7 | 8 | 9

Player 2, please enter a number(1-9): 6

Player 2 chooses position 6.

X | | 1 | 2 | 3

----------- -----------

| | O 4 | 5 | 6

----------- -----------

| | 7 | 8 | 9

Player 1, please enter a number(1-9): 3

Player 1 chooses position 3.

X | | X 1 | 2 | 3

----------- -----------

| | O 4 | 5 | 6

----------- -----------

| | 7 | 8 | 9

Player 2, please enter a number(1-9): 2

Player 2 chooses position 2.

X | O | X 1 | 2 | 3

----------- -----------

| | O 4 | 5 | 6

----------- -----------

| | 7 | 8 | 9

Player 1, please enter a number(1-9): 7

Player 1 chooses position 7.

X | O | X 1 | 2 | 3

----------- -----------

| | O 4 | 5 | 6

----------- -----------

X | | 7 | 8 | 9

Player 2, please enter a number(1-9): 4

Player 2 chooses position 4.

X | O | X 1 | 2 | 3

----------- -----------

O | | O 4 | 5 | 6

----------- -----------

X | | 7 | 8 | 9

Player 1, please enter a number(1-9): 5

Player 1 chooses position 5.

X | O | X 1 | 2 | 3

----------- -----------

O | X | O 4 | 5 | 6

----------- -----------

X | | 7 | 8 | 9

Game over! Player 1 has won the game!

BUILD SUCCESSFUL (total time: 1 minute 21 seconds)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!