Sergei_Langin

Aashish TicTacToe Stage 3

Mar 13th, 2020
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.98 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3.  
  4. public class tictactoediscord {
  5.     public static void main(String[] args) {
  6.         Scanner sc = new Scanner(System.in);
  7.         String s1 = sc.nextLine();
  8.         System.out.println("---------");
  9.         System.out.println("| " + s1.charAt(0) + " " + s1.charAt(1) + " " + s1.charAt(2) + " " + "|");
  10.         System.out.println("| " + s1.charAt(3) + " " + s1.charAt(4) + " " + s1.charAt(5) + " " + "|");
  11.         System.out.println("| " + s1.charAt(6) + " " + s1.charAt(7) + " " + s1.charAt(8) + " " + "|");
  12.         System.out.println("---------");
  13.         int index = 0;
  14.         String[][] arr = new String[3][3];
  15.         int numX = 0;
  16.         int numO = 0;
  17.         int count = 1;
  18.         //entering value of char from string to array
  19.         for (int i = 0; i < 3; i++) {
  20.             for (int j = 0; j < 3; j++) {
  21.                 arr[i][j] = Character.toString(s1.charAt(index));
  22.                 //calculating number of X and O
  23.                 if (arr[i][j].equals("X")) {
  24.                     numX++;
  25.                     count++;
  26.                 } else if (arr[i][j].equals("O")) {
  27.                     numO++;
  28.                     count++;
  29.                 }
  30.                 index++;
  31.             }
  32.         }
  33.         /*for (String[] i : arr) {
  34.             System.out.println(Arrays.toString(i));
  35.         }*/
  36.         boolean won = false;
  37.         //change it
  38.         if (numO - numX > 1 || numX - numO > 1) {
  39.             System.out.println("Impossible");
  40.         }
  41.         else {
  42.             for (int i = 0; i < 3; i++) {
  43.                 //checking rows for XXX
  44.                 if (arr[0][i].equals(arr[1][i]) && arr[1][i].equals(arr[2][i]) && !arr[0][i].equals("O")) {
  45.                     System.out.println("X wins");
  46.                     won = true;
  47.                     break;
  48.                 }
  49.                 //checking rows for OOO
  50.                 else if (arr[0][i].equals(arr[1][i]) && arr[1][i].equals(arr[2][i]) && !arr[0][i].equals("X")) {
  51.                     System.out.println("O wins");
  52.                     won = true;
  53.                     break;
  54.                 }
  55.                 //checking columns for XXX
  56.                 else if (arr[i][0].equals(arr[i][1]) && arr[i][1].equals(arr[i][2]) && !arr[i][0].equals("O")) {
  57.                     System.out.println("X wins");
  58.                     won = true;
  59.                     break;
  60.                 }
  61.                 //checking columns for OOO
  62.                 else if (arr[i][0].equals(arr[i][1]) && arr[i][1].equals(arr[i][2]) && !arr[i][0].equals("X")) {
  63.                     System.out.println("O wins");
  64.                     won = true;
  65.                     break;
  66.                 }
  67.             }
  68.         }
  69.         if (won != true) {
  70.             //checking major diagonal for XXX
  71.             if (arr[0][0].equals(arr[1][1]) && arr[1][1].equals(arr[2][2]) && !arr[0][0].equals("O")) {
  72.                 System.out.println("X wins");
  73.             }
  74.             //checking major diagonal for OOO
  75.             else if (arr[0][0].equals(arr[1][1]) && arr[1][1].equals(arr[2][2]) && !arr[0][0].equals("X")) {
  76.                 System.out.println("O wins");
  77.             }
  78.             //checking minor diagonal for XXX
  79.             else if (arr[2][0].equals(arr[1][1]) && arr[1][1].equals(arr[0][2]) && !arr[0][2].equals("O")) {
  80.                 System.out.println("X wins");
  81.             }
  82.             //checking minor diagonal for OOO
  83.             else if (arr[2][0].equals(arr[1][1]) && arr[1][1].equals(arr[0][2]) && !arr[0][2].equals("X")) {
  84.                 System.out.println("O wins");
  85.             }
  86.             //more O or X than possible
  87. //            else if (numO - numX > 1 || numX - numO > 1) {
  88. //                System.out.println("Impossible");
  89. //            }
  90.             //Unfinished
  91.             else if (count < 8) {
  92.                 System.out.println("Game not finished");
  93.             } else {
  94.                 System.out.println("Draw");
  95.             }
  96.         }
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment