Guest User

Untitled

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