Write a program that allows two players to play the tic-tac-toe game. your progr
ID: 3639736 • Letter: W
Question
Write a program that allows two players to play the tic-tac-toe game. your program must contain the class TicTacToe to implement a TicTacToe object. include three by three two dimensional array, as a private data member, to create the board. if needed, include additional data members. some of the operations on a TicTacToe object are: pint the current board, get a move, check if a move is valid, and determine the winner after each move. add additional operations as neededi tried to do some part
import java.util.*;
public class TicTacToe
{
private char[][] board;
private int noOfMoves;
private static String[] status = {"WIN", "DRAW", "CONTINUE"};
Scanner console = new Scanner(System.in);
public TicTacToe()
{
board = new char[3][3];
for (int row = 0; row < 3; row++)
for (int col = 0; col < 3; col++)
board[row][col] = ' ';
noOfMoves = 0;
}
public void play()
{
boolean done = false;
char player = 'X';
displayBoard();
while (!done)
{
done = getXOMove(player);
if (player == 'X')
player = 'O';
else
player = 'X';
}
}
public void displayBoard()
{
System.out.println(" 1 2 3 ");
for (int row = 0; row < 3; row++)
{
System.out.print(row + 1);
for (int col = 0; col < 3; col++)
{
System.out.printf("%3c", board[row][col]);
if (col != 2)
System.out.print(" |");
}
System.out.println();
if (row != 2)
System.out.println(" ____|____|____ " +
" | | ");
}
System.out.println();
}
public boolean isValidMove(int row, int col)
{
}
Explanation / Answer
package com.javadb.tictactoe;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TicTacToe {
private char[][] board = new char[3][3];
private String player1;
private String player2;
private int currentPlayer;
private char marker1;
private char marker2;
private int plays;
private BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
protected void init() {
int counter = 0;
for (int i = 0; i < 3; i++) {
for (int i1 = 0; i1 < 3; i1++) {
board[i][i1] = Character.forDigit(++counter, 10);
}
}
currentPlayer = 1;
plays = 0;
}
protected void switchPlayers() {
if (getCurrentPlayer() == 1) {
setCurrentPlayer(2);
} else {
setCurrentPlayer(1);
}
setPlays(getPlays() + 1);
}
protected boolean placeMarker(int play) {
for (int i = 0; i < 3; i++) {
for (int i1 = 0; i1 < 3; i1++) {
if (board[i][i1] == Character.forDigit(play, 10)) {
board[i][i1] = (getCurrentPlayer() == 1) ? getMarker1() : getMarker2();
return true;
}
}
}
return false;
}
protected boolean winner() {
//Checking rows
char current = ' ';
for (int i = 0; i < 3; i++) {
int i1 = 0;
for (i1 = 0; i1 < 3; i1++) {
if (!Character.isLetter(board[i][i1])) {
break;
}
if (i1 == 0) {
current = board[i][i1];
} else if (current != board[i][i1]) {
break;
}
if (i1 == 2) {
//Found winner
return true;
}
}
}
//Checking columns
for (int i = 0; i < 3; i++) {
current = ' ';
int i1 = 0;
for (i1 = 0; i1 < 3; i1++) {
if (!Character.isLetter(board[i1][i])) {
break;
}
if (i1 == 0) {
current = board[i1][i];
} else if (current != board[i1][i]) {
break;
}
if (i1 == 2) {
//Found winner
return true;
}
}
}
//Checking diagonals
current = board[0][0];
if (Character.isLetter(current) && board[1][1] == current && board[2][2] == current) {
return true;
}
current = board[2][0];
if (Character.isLetter(current) && board[1][1] == current && board[0][2] == current) {
return true;
}
return false;
}
protected String getRules() {
StringBuilder builder = new StringBuilder();
builder.append("Players take turns marking a square. Only squares ");
builder.append("not already marked can be picked. Once a player has ");
builder.append("marked three squares in a row, they win! If all squares ");
builder.append("are marked and no three squares are the same, a tied game is declared. ");
builder.append("Have Fun! ");
return builder.toString();
}
protected String getPrompt() {
String prompt = "";
try {
prompt = reader.readLine();
} catch (IOException ex) {
ex.printStackTrace();
}
return prompt;
}
protected String drawBoard() {
StringBuilder builder = new StringBuilder("Game board: ");
for (int i = 0; i < 3; i++) {
for (int i1 = 0; i1 < 3; i1++) {
builder.append("[" + board[i][i1] + "]");
}
builder.append(" ");
}
return builder.toString();
}
public int getCurrentPlayer() {
return currentPlayer;
}
public void setCurrentPlayer(int currentPlayer) {
this.currentPlayer = currentPlayer;
}
public char getMarker1() {
return marker1;
}
public void setMarker1(char marker1) {
this.marker1 = marker1;
}
public char getMarker2() {
return marker2;
}
public void setMarker2(char marker2) {
this.marker2 = marker2;
}
public int getPlays() {
return plays;
}
public void setPlays(int plays) {
this.plays = plays;
}
public String getPlayer1() {
return player1;
}
public void setPlayer1(String player1) {
this.player1 = player1;
}
public String getPlayer2() {
return player2;
}
public void setPlayer2(String player2) {
this.player2 = player2;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.