please include the a main method. Define a class called TicTacToe. An object of
ID: 3658416 • Letter: P
Question
please include the a main method.
Define a class called TicTacToe. An object of type TicTacToe is a single game of tic-tac-toe. Store the game board as a single two-dimensional array of base type char that has three rows and three columns. Include methods to add a move, to display the board, to tell whose turn it is (X or O), to tell whether there is a winner, to say who the winner is, and to reinitialize the game to the beginning. Write a main method for the class that will allow two players to enter their moves in turn at the same keyboard.Explanation / Answer
I hope from the below post , you require a tic tac toe game with a main method. Following is a tic tac toe game where the game is commenced using the Main class's main method. it is a console based program which is initiated with a main method. Hope it helps. Please find the program below, Hope the answer is helpful. public class Main { public void play() { TicTacToe game = new TicTacToe(); System.out.println("Welcome! Tic Tac Toe is a two player game."); System.out.print("Enter player one's name: "); game.setPlayer1(game.getPrompt()); System.out.print("Enter player two's name: "); game.setPlayer2(game.getPrompt()); boolean markerOk = false; while (!markerOk) { System.out.print("Select any letter as " + game.getPlayer1() + "'s marker: "); String marker = game.getPrompt(); if (marker.length() == 1 && Character.isLetter(marker.toCharArray()[0])) { markerOk = true; game.setMarker1(marker.toCharArray()[0]); } else { System.out.println("Invalid marker, try again"); } } markerOk = false; while (!markerOk) { System.out.print("Select any letter as " + game.getPlayer2() + "'s marker: "); String marker = game.getPrompt(); if (marker.length() == 1 && Character.isLetter(marker.toCharArray()[0])) { markerOk = true; game.setMarker2(marker.toCharArray()[0]); } else { System.out.println("Invalid marker, try again"); } } boolean continuePlaying = true; while (continuePlaying) { game.init(); System.out.println(); System.out.println(game.getRules()); System.out.println(); System.out.println(game.drawBoard()); System.out.println(); String player = null; while (!game.winner() && game.getPlays() < 9) { player = game.getCurrentPlayer() == 1 ? game.getPlayer1() : game.getPlayer2(); boolean validPick = false; while (!validPick) { System.out.print("It is " + player + "'s turn. Pick a square: "); String square = game.getPrompt(); if (square.length() == 1 && Character.isDigit(square.toCharArray()[0])) { int pick = 0; try { pick = Integer.parseInt(square); } catch (NumberFormatException e) { // Do nothing here, it'll evaluate as an invalid // pick on the next row. } validPick = game.placeMarker(pick); } if (!validPick) { System.out.println("Square can not be selected. Retry"); } } game.switchPlayers(); System.out.println(); System.out.println(game.drawBoard()); System.out.println(); } if (game.winner()) { System.out.println("Game Over - " + player + " WINS!!!"); } else { System.out.println("Game Over - Draw"); } System.out.println(); System.out.print("Play again? (Y/N): "); String choice = game.getPrompt(); if (!choice.equalsIgnoreCase("Y")) { continuePlaying = false; } } } /** * @param args * the command line arguments */ public static void main(String[] args) { Main main = new Main(); main.play(); } } import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * * @author www.javadb.com */ 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; } } Output: Welcome! Tic Tac Toe is a two player game. Enter player one's name: Player 1 Enter player two's name: Player 2 Select any letter as Player 1's marker: X Select any letter as Player 2's marker: O Players take turns marking a square. Only squares not already marked can be picked. Once a player has marked three squares in a row, they win! If all squares are marked and no three squares are the same, a tied game is declared. Have Fun! Game board: [1][2][3] [4][5][6] [7][8][9] It is Player 1's turn. Pick a square: 1 Game board: [X][2][3] [4][5][6] [7][8][9] It is Player 2's turn. Pick a square: 9 Game board: [X][2][3] [4][5][6] [7][8][O] It is Player 1's turn. Pick a square: 5 Game board: [X][2][3] [4][X][6] [7][8][O] It is Player 2's turn. Pick a square: 6 Game board: [X][2][3] [4][X][O] [7][8][O] It is Player 1's turn. Pick a square: 4 Game board: [X][2][3] [X][X][O] [7][8][O] It is Player 2's turn. Pick a square: 3 Game board: [X][2][O] [X][X][O] [7][8][O] Game Over - Player 2 WINS!!! Play again? (Y/N):Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.