Question: Your task is to write a Java application to play the game of tic-tac-toe. The game of tic-tac-toe is played on a 3x3 grid of

Your task is to write a Java application to play the game of tic-tac-toe. The game of tic-tac-toe is played

on a 3x3 grid of cells. One player is designated as X and the other is O. The X player always goes first

and places an X symbol on one of the nine empty cells. The O player then responds by placing an O

symbol on one of the remaining unmarked cells. The players continue to alternate turns placing their

symbols on open cells until one player successfully places three symbols in a horizontal, vertical,

diagonal line to win the game or all the cells are filled resulting in a draw.

The game of tic-tac-toe is considered a very simple game because it is easy to enumerate all possible

board configuration (< 9!). In fact, because numerous configurations symmetric or reflections of other

configuration, there are only 765 board distinct configurations. As result, it is easy to define a set of

conditional rules that produce a win or a draw.

We will keep our solution very simple. Your game should be designed to allow a human player to

compete against a computer player.

Your solution should include the following classes:

1.

The

Board

class to maintain the status of the game (i.e. locations of Xs and Os) along with

suitable methods to update the board status and determine board configuration is a win for X,

win for O, or a draw.

2.

The

Computer Player

class to generate choices for placement of next O based on the current

status of the board.

3.

The

Score Keeper

class to record the number of times each player, human and computer, win.

4.

A graphical user interface constructed using JavaFX to provide a visual representation of the

board, a display of the number of wins and losses for each player, and suitable mouse actions to

support the human players selection of where to place Xs and the computer to respond by

placing an O.

To keep the game simple, always allow the user to play X and go first. The computer player will play O

and respond to the human players choices. Design the computer player to make a random choice of

where to place the next O among the open cells.

You are free to design your GUI to either draw Xs and Os, use a grid of button, use a table or any other

suitable visual representation of the board. Your GUI should always display the score (human and

computer) and provide a message when the human wins, loses or draws. After each game ends, your

solution should reset the board to play another game. The user can terminate the series of games by

closing the GUI.

Since no one has answered this question right on chegg!

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!