Advertisement
Guest User

Untitled

a guest
Dec 9th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. package tictactoe;
  2. import java.util.*;
  3. class TicTacToe
  4. {
  5. char ttt[][] = new char[3][3];
  6. static final char player1 = 'O';
  7. static final char player2 = 'X';
  8. Scanner scan =new Scanner(System.in);
  9. int moves = 0;
  10. char turn = 'X';
  11. String playerID(char player)
  12. {
  13. if (player == player1)
  14. return "player1: "+player;
  15. else
  16. return "player2: "+ player;
  17. }
  18. void getPlayerInput(char player)
  19. {
  20. while (moves < 9) {
  21. boolean validInput = false;
  22. while(!validInput){
  23. System.out.print("Enter row (0-2): ");
  24. int row = s.nextInt();
  25. System.out.print("Enter column (0-2): ");
  26. int column = s.nextInt();
  27. if(row>=0 && row<=2 && column>=0 && column<=2){
  28. if(board[row][column]=='_'){
  29. board[row][column] = turn;
  30. validInput = true;
  31. }
  32. else{
  33. System.out.println("Position already filled, enter again");
  34. }
  35. }
  36. else{
  37. System.out.println("Invalid Position, enter again");
  38. }
  39. }
  40.  
  41.  
  42. }
  43. System.out.println("Current board: "+ ttt[row][col]=player);
  44. boolean gameIsDraw()
  45. {
  46. if(turn=='X')
  47. turn = 'O';
  48. else if(turn=='O')
  49. turn = 'X';
  50. moves++;
  51. }
  52. if (moves == 9) System.out.println("Tie game.");
  53. }
  54.  
  55. boolean winner(char player)
  56. {
  57. boolean win = false;
  58. for (int i = 0; i < 3; i++) {
  59. if (board[i][0] == board[i][1] &&
  60. board[i][1] == board[i][2] &&
  61. board[i][0] == turn) win = true;
  62. if (board[0][i] == board[1][i] &&
  63. board[1][i] == board[2][i] &&
  64. board[0][i] == turn) win = true;
  65. }
  66. if(board[0][0]==board[1][1] &&
  67. board[1][1]==board[2][2] &&
  68. board[2][2]== turn) win = true;
  69.  
  70. if(board[0][2]==board[1][1] &&
  71. board[1][1]==board[2][0] &&
  72. board[2][0]== turn) win = true;
  73. if (win) {
  74. System.out.println(turn + " wins!");
  75. break;
  76. }
  77.  
  78. }
  79. void displayBoard()
  80. {
  81. System.out.println("********************************");
  82. System.out.println(" ---a------b------c---");
  83. for (int i=0; i<3; i++)
  84. {
  85. for (int j=0; j< 3; j++)
  86. {
  87. if (j == 0) System.out.print(" | ");
  88. System.out.print(ttt[i][j]);
  89. if (j < 2) System.out.print( " | ");
  90. if (j==2) System.out.print(" |");
  91. }
  92. System.out.println();
  93. switch (i)
  94. {
  95. case 0:
  96. System.out.println(" ---d------e------f---");
  97. break;
  98. case 1:
  99. System.out.println(" ---g------h------i---");
  100. break;
  101. case 2:
  102. System.out.println(" ---------------------");
  103. break;
  104. }
  105. }
  106.  
  107. }
  108.  
  109.  
  110. void newgame()
  111. {
  112. char currPlayer = player1;
  113. for(int i=0; i<3; i++)
  114. for(int j=0; j<3; j++)
  115. ttt[i][j] =' ';
  116.  
  117. boolean continueFlag = true;
  118. while (continueFlag)
  119. {
  120. displayBoard();
  121. if (gameIsDraw())
  122. {
  123. System.out.println("Game Ends in Draw");
  124. continueFlag = false;
  125. }
  126. else
  127. {
  128. getPlayerInput(currPlayer);
  129. if (winner(currPlayer))
  130. {
  131. System.out.println("We have a winner: " +
  132. playerID(currPlayer));
  133. displayBoard();
  134. continueFlag = false;
  135. }
  136. else
  137. {
  138. if (currPlayer == player1) currPlayer = player2;
  139. else currPlayer = player1;
  140. }
  141. }
  142. }
  143.  
  144. }
  145.  
  146. public static void main(String[] args)
  147. {
  148. TicTacToe game = new TicTacToe();
  149. String str;
  150. do
  151. {
  152. game.newgame();
  153.  
  154. System.out.println("Do you want to play Tic-Tac-Toe (y/n)?");
  155. str= game.scan.next();
  156. } while ("y".equals(str));
  157.  
  158. System.out.println("Bye");
  159. }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement