Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Random;
- public class TicTacToe {
- //Default constructor for class
- TicTacToe(){
- }
- //Variables needed throughout the class
- BoardState[][] board = new BoardState[3][3];
- enum BoardState {EMPTY, X, O, SCRATCH, CONTINUE}
- Random random = new Random();
- void randomPlacement(BoardState turn) {
- int row;
- int column;
- do {
- row = random.nextInt(3);
- column = random.nextInt(3);
- } while (board[row][column] != BoardState.EMPTY);
- board[row][column] = turn;
- }
- private BoardState checkWin() {
- for (int column = 0; column < board[0].length; column++) {
- if ((board[0][column] == board[1][column]) && (board[1][column] == board[2][column])) {
- return board[0][column];
- }
- }
- for (int row = 0; row < board[0].length; row++) {
- if ((board[row][0] == board[row][1]) && (board[row][1] == board[row][2])) {
- return board[row][0];
- }
- }
- if ((board[0][0] == board[1][1]) && (board[1][1] == board[2][2])) {
- return board[0][0];
- } else if ((board[0][2] == board[1][1]) && (board[1][1] == board[2][0])) {
- return board[0][2];
- }
- for (int row = 0; row < board.length; row++) {
- for (int column = 0; column < board[row].length; column++) {
- if (board[row][column] == BoardState.EMPTY) {
- return BoardState.CONTINUE;
- }
- }
- }
- return BoardState.SCRATCH;
- }
- int getTotalWins() {
- int wins = 0;
- if (checkWin() == BoardState.X) {
- wins = wins + 1;
- }
- return wins;
- }
- void printBoard() {
- System.out.println("-------------");
- //Prints current game board
- for (int row = 0; row < (board.length); row++) {
- System.out.print("| ");
- for (int column = 0; column < board[row].length; column++) {
- if (board[row][column] == BoardState.X) {
- System.out.print("X | ");
- } else if (board[row][column] == BoardState.O) {
- System.out.print("O | ");
- } else if (board[row][column] == BoardState.EMPTY) {
- System.out.print(" | ");
- }
- }
- System.out.println("\n-------------");
- }
- if (checkWin() == BoardState.SCRATCH) {
- System.out.println("It is a draw!");
- } else {
- System.out.println("The winner is " + checkWin() + "!");
- }
- }
- void playGame() {
- for (int row = 0; row < board.length; row++) {
- for (int column = 0; column < board[row].length; column++) {
- board[row][column] = BoardState.EMPTY;
- }
- }
- BoardState turn = BoardState.X;
- do {
- this.randomPlacement(turn);
- if (turn == BoardState.X) {
- turn = BoardState.O;
- } else {
- turn = BoardState.X;
- }
- } while (this.checkWin() == BoardState.CONTINUE || this.checkWin() == BoardState.EMPTY);
- this.printBoard();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement