Advertisement
Guest User

TicTacToe

a guest
Sep 17th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.45 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Random;
  3.  
  4. public class TicTacToe {
  5. static int[] ruudud = new int[9];
  6. public static void main(String[] args){
  7. makeBoard();
  8. for(int x=0; x<=4; x++){
  9. ruudud[readInput()]=1;
  10. makeBoard();
  11. checkWin(ruudud);
  12. if(x==4){
  13. System.out.println("Mäng läbi! Käigud said otsa!");
  14. }
  15. ruudud[makeMove()]=-1;
  16. makeBoard();
  17. checkWin(ruudud);
  18. }
  19. }
  20. public static void makeBoard(){
  21. String[] kuva= new String[9];
  22. for(int y=0;y<ruudud.length;y++){
  23. if(ruudud[y]==1){
  24. kuva[y]="X";
  25. }
  26. else if(ruudud[y]==-1){
  27. kuva[y]="O";
  28. }
  29. else kuva[y]=" ";
  30. }
  31. System.out.println("+---+---+---+");
  32. System.out.println("| "+kuva[0]+" | "+kuva[1]+" | "+kuva[2]+" |");
  33. System.out.println("+---+---+---+");
  34. System.out.println("| "+kuva[3]+" | "+kuva[4]+" | "+kuva[5]+" |");
  35. System.out.println("+---+---+---+");
  36. System.out.println("| "+kuva[6]+" | "+kuva[7]+" | "+kuva[8]+" |");
  37. System.out.println("+---+---+---+");
  38. }
  39. public static int makeMove(){
  40. int r = 0;
  41. if(winDetect()==0){
  42. r = 4;
  43. if(ruudud[r]!=0){
  44. int[] nurgad = {0,2,6,8};
  45. Random nurk = new Random();
  46. r = nurk.nextInt(nurgad.length);
  47. if(ruudud[r]!=0){
  48. r = nurk.nextInt(nurgad.length);
  49. }
  50. Random ruut = new Random();
  51. r = ruut.nextInt(9);
  52. while(ruudud[r]!=0){
  53. r=ruut.nextInt(9);
  54. }
  55. }
  56. }
  57. else r=winDetect();
  58. return r;
  59. }
  60. public static int readInput() {
  61. Scanner scanner = new Scanner(System.in);
  62. int nr;
  63. if (scanner.hasNextInt()){
  64. nr = scanner.nextInt();
  65. if((nr>8)||(nr<0)){
  66. System.out.println("Vale number! Sisesta õige number!");
  67. nr = scanner.nextInt();
  68. }
  69. if(ruudud[nr]!=0){
  70. System.out.println("Ruut on juba hõivatud! Sisesta uus number!");
  71. nr = scanner.nextInt();
  72. }
  73. }
  74. else{
  75. System.out.println("Sisesta number 0-st 9-ni!");
  76. return readInput();
  77. }
  78. return nr;
  79. }
  80. public static int checkWin(int[] ruudud) {
  81. for(int q=0;q<7;q+=3){
  82. if((ruudud[q]==ruudud[q+1])&&(ruudud[q+1]==ruudud[q+2])
  83. &&((ruudud[q])+(ruudud[q+1])+(ruudud[q+2])!=0)){
  84. if(ruudud[q]==1){
  85. System.out.println("Palju õnne, Sa võitsid!");
  86. }
  87. if(ruudud[q]==-1){
  88. System.out.println("Arvuti võitis!");
  89. }
  90. return 1;
  91. }
  92. }
  93. for(int w=0;w<3;w++){
  94. if((ruudud[w]==ruudud[w+3])&&(ruudud[w+3]==ruudud[w+6])
  95. &&((ruudud[w])+(ruudud[w+3])+(ruudud[w+6])!=0)){
  96. if(ruudud[w]==1){
  97. System.out.println("Palju õnne, Sa võitsid!");
  98. }
  99. if(ruudud[w]==-1){
  100. System.out.println("Arvuti võitis!");
  101. }
  102. return 1;
  103. }
  104. }
  105. if((ruudud[0]==ruudud[4])&&(ruudud[4]==ruudud[8])
  106. &&((ruudud[0])+(ruudud[4])+(ruudud[8])!=0)){
  107. if(ruudud[0]==1){
  108. System.out.println("Palju õnne, Sa võitsid!");
  109. }
  110. if(ruudud[0]==-1){
  111. System.out.println("Arvuti võitis!");
  112. }
  113. return 1;
  114. }
  115. if((ruudud[2]==ruudud[4])&&(ruudud[4]==ruudud[6])
  116. &&((ruudud[2])+(ruudud[4])+(ruudud[6])!=0)){
  117. if(ruudud[2]==1){
  118. System.out.println("Palju õnne, Sa võitsid!");
  119. }
  120. if(ruudud[2]==-1){
  121. System.out.println("Arvuti võitis!");
  122. }
  123. return 1;
  124. }
  125. return 0;
  126. }
  127. public static int winDetect(){
  128. int kaik = 0;
  129. for(int e=0;e<7;e+=3){
  130. if((ruudud[e]==ruudud[e+1])&&((ruudud[e]+ruudud[e+1])!=0)&&(ruudud[e+2]==0)){
  131. kaik=e+2;
  132. }
  133. if((ruudud[e+1]==ruudud[e+2])&&((ruudud[e+1]+ruudud[e+2])!=0)&&(ruudud[e]==0)){
  134. kaik=e;
  135. }
  136. if((ruudud[e]==ruudud[e+2])&&((ruudud[e]+ruudud[e+2])!=0)&&(ruudud[e+1]==0)){
  137. kaik=e+1;
  138. }
  139. }
  140. for(int t=0;t<3;t++){
  141. if((ruudud[t]==ruudud[t+3])&&((ruudud[t]+ruudud[t+3])!=0)&&(ruudud[t+6]==0)){
  142. kaik=t+6;
  143. }
  144. if((ruudud[t+3]==ruudud[t+6])&&((ruudud[t+3]+ruudud[t+6])!=0)&&(ruudud[t]==0)){
  145. kaik=t;
  146. }
  147. if((ruudud[t]==ruudud[t+6])&&((ruudud[t]+ruudud[t+6])!=0)&&(ruudud[t+3]==0)){
  148. kaik=t+3;
  149. }
  150. }
  151. if((ruudud[0]==ruudud[4])&&((ruudud[0]+ruudud[4])!=0)&&(ruudud[8]==0)){
  152. kaik=8;
  153. }
  154. if((ruudud[0]==ruudud[8])&&((ruudud[0]+ruudud[8])!=0)&&(ruudud[4]==0)){
  155. kaik=4;
  156. }
  157. if((ruudud[4]==ruudud[8])&&((ruudud[4]+ruudud[8])!=0)&&(ruudud[0]==0)){
  158. kaik=0;
  159. }
  160. if((ruudud[2]==ruudud[4])&&((ruudud[2]+ruudud[4])!=0)&&(ruudud[6]==0)){
  161. kaik=6;
  162. }
  163. if((ruudud[2]==ruudud[6])&&((ruudud[2]+ruudud[6])!=0)&&(ruudud[4]==0)){
  164. kaik=4;
  165. }
  166. if((ruudud[4]==ruudud[6])&&((ruudud[4]+ruudud[6])!=0)&&(ruudud[2]==0)){
  167. kaik=2;
  168. }
  169. return kaik;
  170. }
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement