Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Homework 2: Tic Tac Toe
- Program by: Emerson Murray
- File Name: H2_TicTacToe.java
- Function: A basic tic tac toe program
- */
- import java.io.*;
- public class H2_TicTacToe
- {
- public static void main(String args[]) throws IOException
- {
- char[] board = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
- boolean turn = true;
- int moveNum;
- int moveCount = 0;
- String inputMove;
- BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
- menu();
- while (checkTie == false && checkWin == false) {
- if (turn == true) {
- System.out.println("Enter your move, Player X: ");
- inputMove = dataIn.readLine();
- moveNum = Integer.parseInt(inputMove);
- turn = false;
- moveCount++;
- player1(moveNum, turn, moveCount, board);
- }
- else {
- System.out.println("Enter your move, Player O: ");
- inputMove = dataIn.readLine();
- moveNum = Integer.parseInt(inputMove);
- turn = true;
- moveCount++;
- player2(moveNum, turn, moveCount, board);
- }
- checkWin(board);
- checkTie(moveCount);
- }
- }
- public static void menu()
- {
- System.out.println("0|1|2");
- System.out.println("-----");
- System.out.println("3|4|5");
- System.out.println("-----");
- System.out.println("6|7|8");
- }
- public static void showBoard(char theBoard[])
- {
- System.out.println(theBoard[0] + "|" + theBoard[1] + "|" + theBoard[2]);
- System.out.println("-----");
- System.out.println(theBoard[3] + "|" + theBoard[4] + "|" + theBoard[5]);
- System.out.println("-----");
- System.out.println(theBoard[6] + "|" + theBoard[7] + "|" + theBoard[8]);
- }
- public static void player1(int moveNum, boolean turn, int moveCount, char theBoard[])
- {
- switch(moveNum)
- {
- case 0:
- if(theBoard[0] == ' ') {
- theBoard[0] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 1:
- if(theBoard[1] == ' ') {
- theBoard[1] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 2:
- if(theBoard[2] == ' ') {
- theBoard[2] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 3:
- if(theBoard[3] == ' ') {
- theBoard[3] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 4:
- if(theBoard[4] == ' ') {
- theBoard[4] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 5:
- if(theBoard[5] == ' ') {
- theBoard[5] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 6:
- if(theBoard[6] == ' ') {
- theBoard[6] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 7:
- if(theBoard[7] == ' ') {
- theBoard[7] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- case 8:
- if(theBoard[8] == ' ') {
- theBoard[8] = 'X';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = true;
- moveCount--;
- menu();
- }
- break;
- default:
- System.out.println("That is not a valid move, please try again.");
- menu();
- }
- }
- public static void player2(int moveNum, boolean turn, int moveCount, char theBoard[])
- {
- switch(moveNum)
- {
- case 0:
- if(theBoard[0] == ' ') {
- theBoard[0] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 1:
- if(theBoard[1] == ' ') {
- theBoard[1] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 2:
- if(theBoard[2] == ' ') {
- theBoard[2] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 3:
- if(theBoard[3] == ' ') {
- theBoard[3] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 4:
- if(theBoard[4] == ' ') {
- theBoard[4] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 5:
- if(theBoard[5] == ' ') {
- theBoard[5] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 6:
- if(theBoard[6] == ' ') {
- theBoard[6] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 7:
- if(theBoard[7] == ' ') {
- theBoard[7] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- case 8:
- if(theBoard[8] == ' ') {
- theBoard[8] = 'O';
- menu();
- showBoard(theBoard);
- }
- else
- {
- System.out.println("That space is already taken, please try again.");
- turn = false;
- moveCount--;
- menu();
- }
- break;
- default:
- System.out.println("That is not a valid move, please try again.");
- menu();
- }
- }
- public static boolean checkTie(int moveCount)
- {
- if(moveCount == 9)
- {
- System.out.println("TIED GAME");
- return true;
- }
- }
- public static boolean checkWin(char board[])
- {
- if((board[0] == board[1]) && (board[1] == board[2]))
- {
- if(board[0] != ' ')
- {
- System.out.println("Player " + board[0] + " wins!");
- return true;
- }
- }
- if((board[3] == board[4]) && (board[4] == board[5]))
- {
- if(board[3] != ' ')
- {
- System.out.println("Player " + board[3] + " wins!");
- return true;
- }
- }
- if((board[6] == board[7]) && (board[7] == board[8]))
- {
- if(board[6] != ' ')
- {
- System.out.println("Player " + board[6] + " wins!");
- return true;
- }
- }
- if((board[0] == board[3]) && (board[3] == board[6]))
- {
- if(board[0] != ' ')
- {
- System.out.println("Player " + board[0] + " wins!");
- return true;
- }
- }
- if((board[1] == board[4]) && (board[4] == board[7]))
- {
- if(board[1] != ' ')
- {
- System.out.println("Player " + board[1] + " wins!");
- return true;
- }
- }
- if((board[2] == board[5]) && (board[5] == board[8]))
- {
- if(board[2] != ' ')
- {
- System.out.println("Player " + board[2] + " wins!");
- return true;
- }
- }
- if((board[0] == board[4]) && (board[4] == board[8]))
- {
- if(board[0] != ' ')
- {
- System.out.println("Player " + board[0] + " wins!");
- return true;
- }
- }
- if((board[2] == board[4]) && (board[4] == board[6]))
- {
- if(board[2] != ' ')
- {
- System.out.println("Player " + board[2] + " wins!");
- return true;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment