Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.01 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.InputMismatchException;
  3. import java.util.Scanner;
  4.  
  5. public class TicTacToe {
  6.     static Scanner in;
  7.     static String[] board;
  8.     static String turn;
  9.  
  10.     public static void main(String[] args) {
  11.         in = new Scanner(System.in);
  12.         board = new String[9];
  13.         turn = "X";
  14.         String winner = null;
  15.         populateEmptyBoard();
  16.  
  17.         System.out.println("Welcome to 2 Player Tic Tac Toe.");
  18.         System.out.println("--------------------------------");
  19.         printBoard();
  20.         System.out.println("X's will play first. Enter a slot number to place X in:");
  21.  
  22.         while (winner == null) {
  23.             int numInput;
  24.             try {
  25.                 numInput = in.nextInt();
  26.                 if (!(numInput > 0 && numInput <= 9)) {
  27.                     System.out.println("Invalid input; re-enter slot number:");
  28.                     continue;
  29.                 }
  30.             } catch (InputMismatchException e) {
  31.                 System.out.println("Invalid input; re-enter slot number:");
  32.                 continue;
  33.             }
  34.             if (board[numInput-1].equals(String.valueOf(numInput))) {
  35.                 board[numInput-1] = turn;
  36.                 if (turn.equals("X")) {
  37.                     turn = "O";
  38.                 } else {
  39.                     turn = "X";
  40.                 }
  41.                 printBoard();
  42.                 winner = checkWinner();
  43.             } else {
  44.                 System.out.println("Slot already taken; re-enter slot number:");
  45.                 continue;
  46.             }
  47.         }
  48.         if (winner.equalsIgnoreCase("draw")) {
  49.             System.out.println("It's a draw! Thanks for playing.");
  50.         } else {
  51.             System.out.println("Congratulations! " + winner + "'s have won! Thanks for playing.");
  52.         }
  53.     }
  54.  
  55.     static String checkWinner() {
  56.         for (int a = 0; a < 8; a++) {
  57.             String line = null;
  58.             switch (a) {
  59.             case 0:
  60.                 line = board[0] + board[1] + board[2];
  61.                 break;
  62.             case 1:
  63.                 line = board[3] + board[4] + board[5];
  64.                 break;
  65.             case 2:
  66.                 line = board[6] + board[7] + board[8];
  67.                 break;
  68.             case 3:
  69.                 line = board[0] + board[3] + board[6];
  70.                 break;
  71.             case 4:
  72.                 line = board[1] + board[4] + board[7];
  73.                 break;
  74.             case 5:
  75.                 line = board[2] + board[5] + board[8];
  76.                 break;
  77.             case 6:
  78.                 line = board[0] + board[4] + board[8];
  79.                 break;
  80.             case 7:
  81.                 line = board[2] + board[4] + board[6];
  82.                 break;
  83.             }
  84.             if (line.equals("XXX")) {
  85.                 return "X";
  86.             } else if (line.equals("OOO")) {
  87.                 return "O";
  88.             }
  89.         }
  90.  
  91.         for (int a = 0; a < 9; a++) {
  92.             if (Arrays.asList(board).contains(String.valueOf(a+1))) {
  93.                 break;
  94.             }
  95.             else if (a == 8) return "draw";
  96.         }
  97.  
  98.         System.out.println(turn + "'s turn; enter a slot number to place " + turn + " in:");
  99.         return null;
  100.     }
  101.  
  102.     static void printBoard() {
  103.         System.out.println("/---|---|---\\");
  104.         System.out.println("| " + board[0] + " | " + board[1] + " | " + board[2] + " |");
  105.         System.out.println("|-----------|");
  106.         System.out.println("| " + board[3] + " | " + board[4] + " | " + board[5] + " |");
  107.         System.out.println("|-----------|");
  108.         System.out.println("| " + board[6] + " | " + board[7] + " | " + board[8] + " |");
  109.         System.out.println("/---|---|---\\");
  110.     }
  111.  
  112.     static void populateEmptyBoard() {
  113.         for (int a = 0; a < 9; a++) {
  114.             board[a] = String.valueOf(a+1);
  115.         }
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement