Question

Make a simple tick tac toe game using java , please make sure it works

Make a simple tick tac toe game using java , please make sure it works
0 0
Add a comment Improve this question Transcribed image text
Answer #1

import java.util.Arrays;

import java.util.InputMismatchException;

import java.util.Scanner;

public class TicTacToe {

static Scanner in;

static String[] board;

static String turn;

public static void main(String[] args) {

in = new Scanner(System.in);

board = new String[9];

turn = "X";

String winner = null;

populateEmptyBoard();

System.out.println("Welcome to 2 Player Tic Tac Toe.");

System.out.println("--------------------------------");

printBoard();

System.out.println("X's will play first. Enter a slot number to place X in:");

while (winner == null) {

int numInput;

try {

numInput = in.nextInt();

if (!(numInput > 0 && numInput <= 9)) {

System.out.println("Invalid input; re-enter slot number:");

continue;

}

} catch (InputMismatchException e) {

System.out.println("Invalid input; re-enter slot number:");

continue;

}

if (board[numInput-1].equals(String.valueOf(numInput))) {

board[numInput-1] = turn;

if (turn.equals("X")) {

turn = "O";

} else {

turn = "X";

}

printBoard();

winner = checkWinner();

} else {

System.out.println("Slot already taken; re-enter slot number:");

continue;

}

}

if (winner.equalsIgnoreCase("draw")) {

System.out.println("It's a draw! Thanks for playing.");

} else {

System.out.println("Congratulations! " + winner + "'s have won! Thanks for playing.");

}

}

static String checkWinner() {

for (int a = 0; a < 8; a++) {

String line = null;

switch (a) {

case 0:

line = board[0] + board[1] + board[2];

break;

case 1:

line = board[3] + board[4] + board[5];

break;

case 2:

line = board[6] + board[7] + board[8];

break;

case 3:

line = board[0] + board[3] + board[6];

break;

case 4:

line = board[1] + board[4] + board[7];

break;

case 5:

line = board[2] + board[5] + board[8];

break;

case 6:

line = board[0] + board[4] + board[8];

break;

case 7:

line = board[2] + board[4] + board[6];

break;

}

if (line.equals("XXX")) {

return "X";

} else if (line.equals("OOO")) {

return "O";

}

}

for (int a = 0; a < 9; a++) {

if (Arrays.asList(board).contains(String.valueOf(a+1))) {

break;

}

else if (a == 8) return "draw";

}

System.out.println(turn + "'s turn; enter a slot number to place " + turn + " in:");

return null;

}

static void printBoard() {

System.out.println("/---|---|---\\");

System.out.println("| " + board[0] + " | " + board[1] + " | " + board[2] + " |");

System.out.println("|-----------|");

System.out.println("| " + board[3] + " | " + board[4] + " | " + board[5] + " |");

System.out.println("|-----------|");

System.out.println("| " + board[6] + " | " + board[7] + " | " + board[8] + " |");

System.out.println("/---|---|---\\");

}

static void populateEmptyBoard() {

for (int a = 0; a < 9; a++) {

board[a] = String.valueOf(a+1);

}

}

}

Add a comment
Know the answer?
Add Answer to:
Make a simple tick tac toe game using java , please make sure it works
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT